node-trx
Version:
File generator utility for TRX file format for use with Visual Studio and MSBuild
123 lines (94 loc) • 3.93 kB
Markdown
node-trx
========
[![Build Status][travis-image]][travis-url]
[![Coverage Status][coveralls-image]][coveralls-url]
This is a Node utility for generating test results files in the [Visual Studio Test Results File (TRX)](https://msdn.microsoft.com/en-us/library/jj155800(v=vs.120).aspx) format.
The TRX file format is compliant with the namespace http://microsoft.com/schemas/VisualStudio/TeamTest/2010, found in full spec in `%VSINSTALLDIR%\xml\Schemas\vstst.xsd`.
This libary is a partial implementation of the XSD.
This library was designed to reduce domain knowledge needed to create TRX files via a simple, fluent interface.
```javascript
var fs = require('fs')
, TRX = require('../trx')
, TestRun = TRX.TestRun
, UnitTest = TRX.UnitTest
, computerName = 'bmanci01'
, run;
run = new TestRun({
name: 'Sample TRX Import',
runUser: 'Brian Mancini',
times: {
creation: '2015-08-10T00:00:00.000Z',
queuing: '2015-08-10T00:00:00.000Z',
start: '2015-08-10T00:00:00.000Z',
finish: '2015-08-10T00:00:01.500Z'
}
})
.addResult({
test: new UnitTest({
name: 'test 1',
methodName: 'test1',
methodCodeBase: 'testing-framework',
methodClassName: 'test1',
owners: [{name: 'testOwner'}],
description: 'This is test 1'
}),
computerName: computerName,
outcome: 'Passed',
duration: '00:00:44.7811567',
startTime: '2010-11-16T08:48:29.9072393-08:00',
endTime: '2010-11-16T08:49:16.9694381-08:00'
})
.addResult({
test: new UnitTest({
name: 'test 2',
methodName: 'test2',
methodCodeBase: 'testing-framework',
methodClassName: 'test2',
description: 'This is test 2'
}),
computerName: computerName,
outcome: 'Inconclusive',
duration: '00:00:44.7811567',
startTime: '2010-11-16T08:48:29.9072393-08:00',
endTime: '2010-11-16T08:49:16.9694381-08:00'
})
.addResult({
test: new UnitTest({
name: 'test 3',
methodName: 'test3',
methodCodeBase: 'testing-framework',
methodClassName: 'test3',
description: 'This is test 3'
}),
computerName: computerName,
outcome: 'Failed',
duration: '00:00:44.7811567',
startTime: '2010-11-16T08:48:29.9072393-08:00',
endTime: '2010-11-16T08:49:16.9694381-08:00',
output: 'This is sample output for the unit test',
errorMessage: 'This unit test failed for a bad reason',
errorStacktrace: 'at test3() in c:\\tests\\test3.js:line 1'
});
// output the json to the screen
console.log(run);
// write the output to exmample.trx
fs.writeFileSync('example.trx', run.toXml());
```
Error information can be provided by including `errorMessage` and `errorStacktrace` properties in the result. Stacktrace must conform to the syntax `at [method signature] in [file path]:[line number]` or it will be picked up by Visual Studio.
Standard output information can be included in the `output` property.
Run `npm run test`.
0.8.0 - Added support for Owners, update UUID to 3.0.0
0.7.0 - Added support for Attachments
0.6.0 - Added support for NotExecuted outcome.
0.5.0 - Added support for Pending and Timeout outcomes.
0.4.0 - Added support for configuring Times tag.
0.3.0 - Added support for configuring TestSetting and provides a default if not supplied.
0.2.0 - Added support for Unit Test description
0.1.2 - Added support for errors and stacktrace info
0.1.1 - Initial development release
[]: https://travis-ci.org/bmancini55/node-trx.svg?branch=master
[]: https://travis-ci.org/bmancini55/node-trx
[]: https://coveralls.io/repos/github/bmancini55/node-trx/badge.svg?branch=master
[]: https://coveralls.io/github/bmancini55/node-trx?branch=master