Chutzpah 3.3.0 is now available at your usual locations.
Changes
- Update to QUnit 1.16
- Update to Jasmine 2.1.3
- Improve parsing of Chutzpah.json files (finally allow comments)
- Skip paths that are too long while discovering tests
- Integrate test result transformers into Chutzpah.json file
- Add LCOV test result transformer
- Add TRX test result transformer
- Add source map support for code coverage
- Fix issue with requirejs urls containing querystrings
- Move HTML template injection from HEAD tag to BODY tag
Test Result Transforms
Chutzpah has long had support to transform your test results into the JUnit XML format but this was only exposed from the command line. With recent additions this feature has been greatly improved: Chutzpah now supports JUnit, LCOV (for code coverage) and TRX file formats. In addition, you can now specify what transforms you want and where the output files should live using the chutzpah.json file.
For example the settings below will output the results as lcov, trx and junit to the specified paths whenever Chutzpah runs.
{ "Transforms": [ { "Name": "lcov", "Path": "C:\temp\lcov.dat" }, { "Name": "junit", "Path": "C:\temp\junit.xml" }, { "Name": "trx", "Path": "C:\temp\trx.trx" } ] }
Code Coverage Source Map Support
One annoyance with Chutzpah’s code coverage was that is always showed coverage in terms of the .js files even if your source files were TypeScript or CoffeeScript. To address that problem this release contains a new option as part of the compile settings called UseSourceMaps. This will instruct Chutzpah to look for source map files in your configured compile output directory. If it finds them it will map your coverage results to the lines of the source files and generate the coverage HTML accordingly.
Here is an example config using this setting:
{ "Compile": { "UseSourceMaps": true, "Mode": "External", "Extensions": [ ".ts" ], "ExtensionsWithNoOutput": [ ".d.ts" ] }, "Tests": [ { "Path": "Tests.ts" } ], "References": [ { "Path": "SourceMappedLibrary.ts" } ], "CodeCoverageExcludes": ["*Tests.ts"] }