Giter Club home page Giter Club logo

jasminetsconsolereporter's Introduction

Jasmine Typescript Console Reporter

npm issues license

A Jasmine Console Reporter that remaps Typescript files. This will use source maps to remap the error stack file paths and line numbers to the source typescript files.

Preview

preview

Installation

npm i --save-dev jasmine-ts-console-reporter

Usage

Using jasmine command line tool

Just use --reporter=jasmine-ts-console-reporter argument when calling jasmine command line tool, for example, from your package.json file:

"scripts": {
	"test": "tsc ; jasmine --reporter=jasmine-ts-console-reporter"
},

IMPORTANT Don't forget to configure the TypeScript compiler to generate sourcemaps, for example adding "sourceMap": true in your tsconfig.json

Using a jasmine helper

Create a helper file for jasmine, eg specs/helpers.js

const TSConsoleReporter = require('jasmine-ts-console-reporter');

jasmine.getEnv().clearReporters(); // Clear default console reporter
jasmine.getEnv().addReporter(new TSConsoleReporter());

Load the helper file in Jasmine, eg on node jasmine.json:

{
	"helpers": [
		"specs/helpers.js",
	]
}

Custom sourceMapProvider

For more intricate usage scenarios, like using istanbul where the sourcemaps for instumented files are held in memory, you can locate the sourcemaps via a callback:

new TSConsoleReporter({
	sourceMapProvider: (fileName) => {
		const map = fetchMySourceMap(fileName);
		const sourcesRelativeTo = '< Relative path from source map file to source file. >';
		return map ? { map, sourcesRelativeTo } : null;	// Return null if no source map is found.
	}
});

The return object must be the same as source-map-resolve.

Extra stack filter ignore

You can provide additional ignore patterns for the stack trace (on top the built in exclusion of jasmine sources), this is useful for when you are using test frameworks that show up in the stack trace like typemoq.

// regexp
new TSConsoleReporter({
	stackFilterIgnore: /node_modules\\typemoq/
});
// or glob
new TSConsoleReporter({
	stackFilterIgnore: '**/node_modules/typemoq/**'
});

Custom title filter

You can provide additional filtering for the spec title, this is useful for when you want to limit or decorate the title output in some way.

new TSConsoleReporter({
	titleFilter: (title) => (title.length > 100) ? title.substr(0, 100 - 1) + '...' : title
});

Custom message filter

You can provide additional filtering for the error message, this is useful for when you want to limit or decorate the message output in some way.

new TSConsoleReporter({
	messageFilter: (message) => message.split('\n')[0]
});

jasminetsconsolereporter's People

Contributors

seansobey avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.