@lynxwall/cucumber-tsflow 6.2.0 → 6.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +16 -2
- package/lib/cli/load-configuration.js +17 -1
- package/lib/formatters/junit-bamboo-formatter.d.ts +17 -0
- package/lib/formatters/junit-bamboo-formatter.js +173 -0
- package/lib/junitbamboo.d.ts +1 -0
- package/lib/junitbamboo.js +28 -0
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -177,7 +177,7 @@ yarn test
|
|
|
177
177
|
|
|
178
178
|
### Executing Tests with Continuous Integration (CI)
|
|
179
179
|
|
|
180
|
-
When executing tests as part of Continuous Integration (CI) operations you should use the following command to execute the tests from the folder that contains your cucumber and Typescript (tsconfig) configuration files that are associated with tests you want to execute.
|
|
180
|
+
When executing tests as part of Continuous Integration (CI) operations you should use the following command to execute the tests from the folder that contains your cucumber and Typescript (tsconfig) configuration files that are associated with tests you want to execute.
|
|
181
181
|
|
|
182
182
|
```bash
|
|
183
183
|
npx cucumber-tsflow -p default
|
|
@@ -491,7 +491,7 @@ public givenAValueBasedSearch(searchValue: string): void {
|
|
|
491
491
|
|
|
492
492
|
```
|
|
493
493
|
|
|
494
|
-
### Using
|
|
494
|
+
### Using different report formatters and tsflow-snippet-syntax
|
|
495
495
|
|
|
496
496
|
Changing the formatter used for generating json along with changing the Snippet Syntax can be done through the CucumberJS configuration file.
|
|
497
497
|
|
|
@@ -511,6 +511,20 @@ The following example shows how to configure the behave formatter in cucumber.js
|
|
|
511
511
|
}
|
|
512
512
|
```
|
|
513
513
|
|
|
514
|
+
#### Using the bamboo junit formatter
|
|
515
|
+
|
|
516
|
+
The following example shows how to configure the bamboo junit formatter in cucumber.json. This differs from the standard cucumber junit formatter in that "pending" and "undefined" tests do not get classified as failures, instead they are classified as skips
|
|
517
|
+
|
|
518
|
+
```javascript
|
|
519
|
+
{
|
|
520
|
+
"default": {
|
|
521
|
+
"format": [
|
|
522
|
+
"junitbamboo:cucumber_report.xml"
|
|
523
|
+
]
|
|
524
|
+
}
|
|
525
|
+
}
|
|
526
|
+
```
|
|
527
|
+
|
|
514
528
|
## Sharing Data between Bindings
|
|
515
529
|
|
|
516
530
|
### Context Injection
|
|
@@ -74,6 +74,22 @@ const loadConfiguration = async (options = {}, environment = {}) => {
|
|
|
74
74
|
}
|
|
75
75
|
}
|
|
76
76
|
}
|
|
77
|
+
// look for junitbamboo format
|
|
78
|
+
for (let idx = 0; idx < original.format.length; idx++) {
|
|
79
|
+
if (typeof original.format[idx] === 'string') {
|
|
80
|
+
const formatItem = original.format[idx];
|
|
81
|
+
if (formatItem.startsWith('junitbamboo:')) {
|
|
82
|
+
original.format[idx] = formatItem.replace('junitbamboo', '@lynxwall/cucumber-tsflow/lib/junitbamboo.js');
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
else if (original.format[idx].length > 0) {
|
|
86
|
+
const formatItem = original.format[idx][0];
|
|
87
|
+
if (formatItem.startsWith('junitbamboo')) {
|
|
88
|
+
const newVal = formatItem.replace('junitbamboo', '@lynxwall/cucumber-tsflow/lib/junitbamboo.js');
|
|
89
|
+
original.format[idx] = original.format[idx].length > 1 ? [newVal, original.format[idx][1]] : [newVal];
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
77
93
|
// check to see if a debugFile was passed in
|
|
78
94
|
if ((0, helpers_1.hasStringValue)(original.debugFile)) {
|
|
79
95
|
// Initialize gherkin manager with path to feature files
|
|
@@ -98,4 +114,4 @@ const loadConfiguration = async (options = {}, environment = {}) => {
|
|
|
98
114
|
};
|
|
99
115
|
};
|
|
100
116
|
exports.loadConfiguration = loadConfiguration;
|
|
101
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
117
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZC1jb25maWd1cmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaS9sb2FkLWNvbmZpZ3VyYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0Esa0ZBQThFO0FBQzlFLHNFQUtvRDtBQUNwRCx3R0FBb0c7QUFDcEcsNEZBQXdGO0FBQ3hGLHdFQUEwRTtBQUUxRSxrREFBMEI7QUFDMUIsOENBQWtEO0FBQ2xELGlGQUF3RDtBQUV4RCw4RUFBMEU7QUFZMUU7Ozs7OztHQU1HO0FBQ0ksTUFBTSxpQkFBaUIsR0FBRyxLQUFLLEVBQ3JDLFVBQXFDLEVBQUUsRUFDdkMsY0FBK0IsRUFBRSxFQUNPLEVBQUU7SUFDMUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLElBQUEsOEJBQWdCLEVBQUMsV0FBVyxDQUFDLENBQUM7SUFDbEUsTUFBTSxNQUFNLEdBQVksSUFBSSw4QkFBYSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztJQUV6RCxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsSUFBSSxJQUFJLElBQUEsd0JBQVUsRUFBQyxHQUFHLENBQUMsQ0FBQztJQUNuRCxJQUFJLFVBQVUsRUFBRTtRQUNmLE1BQU0sQ0FBQyxLQUFLLENBQUMsc0NBQXNDLFVBQVUsR0FBRyxDQUFDLENBQUM7S0FDbEU7U0FBTTtRQUNOLE1BQU0sQ0FBQyxLQUFLLENBQUMsNkJBQTZCLENBQUMsQ0FBQztLQUM1QztJQUNELE1BQU0sb0JBQW9CLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLElBQUEsZ0JBQVEsRUFBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUV6Ryx3REFBd0Q7SUFDeEQsMkRBQTJEO0lBQzNELCtEQUErRDtJQUMvRCxrQkFBa0I7SUFDbEIsSUFBSSxPQUFPLENBQUMsUUFBUSxFQUFFLEtBQUssSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQ2xFLG9CQUFvQixDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7S0FDaEM7SUFFRCxNQUFNLFFBQVEsR0FBRyxJQUFBLDJCQUFtQixFQUNuQyw2QkFBcUIsRUFDckIsb0JBQW9CLEVBQ3BCLE9BQU8sQ0FBQyxRQUFtQyxDQUNuQixDQUFDO0lBRTFCLFFBQVEsUUFBUSxDQUFDLFVBQVUsRUFBRTtRQUM1QixLQUFLLE9BQU87WUFDWCxRQUFRLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO1lBQ25FLE1BQU07UUFDUCxLQUFLLE9BQU87WUFDWCxRQUFRLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO1lBQ25FLE1BQU07UUFDUCxLQUFLLFFBQVE7WUFDWixRQUFRLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO1lBQ3BFLE1BQU07UUFDUDtZQUNDLHdCQUF3QjtZQUN4QixRQUFRLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO1lBQ3BFLE1BQU07S0FDUDtJQUNELHlCQUF5QjtJQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxhQUFhLEVBQUU7UUFDMUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxhQUFhLEdBQUcsMENBQTBDLENBQUM7S0FDbEY7SUFDRCx5QkFBeUI7SUFDekIsS0FBSyxJQUFJLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxFQUFFO1FBQ3RELElBQUksT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLFFBQVEsRUFBRTtZQUM3QyxNQUFNLFVBQVUsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBVyxDQUFDO1lBQ2xELElBQUksVUFBVSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsRUFBRTtnQkFDckMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSx5Q0FBeUMsQ0FBQyxDQUFDO2FBQy9GO1NBQ0Q7YUFBTSxJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUMzQyxNQUFNLFVBQVUsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBVyxDQUFDO1lBQ3JELElBQUksVUFBVSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFDcEMsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUseUNBQXlDLENBQUMsQ0FBQztnQkFDdkYsUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUN0RztTQUNEO0tBQ0Q7SUFFRCw4QkFBOEI7SUFDOUIsS0FBSyxJQUFJLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxFQUFFO1FBQ3RELElBQUksT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLFFBQVEsRUFBRTtZQUM3QyxNQUFNLFVBQVUsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBVyxDQUFDO1lBQ2xELElBQUksVUFBVSxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsRUFBRTtnQkFDMUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSw4Q0FBOEMsQ0FBQyxDQUFDO2FBQ3pHO1NBQ0Q7YUFBTSxJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUMzQyxNQUFNLFVBQVUsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBVyxDQUFDO1lBQ3JELElBQUksVUFBVSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsRUFBRTtnQkFDekMsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsOENBQThDLENBQUMsQ0FBQztnQkFDakcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUN0RztTQUNEO0tBQ0Q7SUFFRCw0Q0FBNEM7SUFDNUMsSUFBSSxJQUFBLHdCQUFjLEVBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxFQUFFO1FBQ3ZDLHdEQUF3RDtRQUN4RCxNQUFNLE9BQU8sR0FBRyxJQUFJLHlCQUFjLEVBQUUsQ0FBQztRQUNyQyxNQUFNLE9BQU8sQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNDLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDcEUsSUFBSSxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUN4QixRQUFRLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUNwQixRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7U0FDMUQ7YUFBTTtZQUNOLGlEQUFpRDtZQUNqRCxNQUFNLENBQUMsSUFBSSxDQUFDLGVBQUssQ0FBQyxNQUFNLENBQUMsMkNBQTJDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDM0YsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFLLENBQUMsTUFBTSxDQUFDLDhCQUE4QixDQUFDLENBQUMsQ0FBQztTQUMxRDtLQUNEO0lBRUQsSUFBQSw4Q0FBcUIsRUFBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDeEMsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFBLDRDQUFvQixFQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDbkUsT0FBTztRQUNOLGdCQUFnQixFQUFFLFFBQVE7UUFDMUIsZ0JBQWdCLEVBQUUsUUFBUTtLQUMxQixDQUFDO0FBQ0gsQ0FBQyxDQUFDO0FBdEdXLFFBQUEsaUJBQWlCLHFCQXNHNUIifQ==
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Formatter, IFormatterOptions } from '@cucumber/cucumber';
|
|
2
|
+
export default class JunitBambooFormatter extends Formatter {
|
|
3
|
+
private readonly names;
|
|
4
|
+
private readonly suiteName;
|
|
5
|
+
static readonly documentation: string;
|
|
6
|
+
constructor(options: IFormatterOptions);
|
|
7
|
+
private getTestCases;
|
|
8
|
+
private getTestSteps;
|
|
9
|
+
private getTestStep;
|
|
10
|
+
private getTestCaseResult;
|
|
11
|
+
private durationToSeconds;
|
|
12
|
+
private nameOrDefault;
|
|
13
|
+
private getTestCaseName;
|
|
14
|
+
private formatTestSteps;
|
|
15
|
+
private onTestRunFinished;
|
|
16
|
+
private buildXmlReport;
|
|
17
|
+
}
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const xmlbuilder_1 = __importDefault(require("xmlbuilder"));
|
|
7
|
+
const messages_1 = require("@cucumber/messages");
|
|
8
|
+
const value_checker_1 = require("@cucumber/cucumber/lib/value_checker");
|
|
9
|
+
const pickle_parser_1 = require("@cucumber/cucumber/lib/formatter/helpers/pickle_parser");
|
|
10
|
+
const gherkin_document_parser_1 = require("@cucumber/cucumber/lib/formatter/helpers/gherkin_document_parser");
|
|
11
|
+
const cucumber_1 = require("@cucumber/cucumber");
|
|
12
|
+
class JunitBambooFormatter extends cucumber_1.Formatter {
|
|
13
|
+
names = {};
|
|
14
|
+
suiteName;
|
|
15
|
+
static documentation = 'Outputs JUnit report';
|
|
16
|
+
constructor(options) {
|
|
17
|
+
super(options);
|
|
18
|
+
this.suiteName = (0, value_checker_1.valueOrDefault)(options.parsedArgvOptions.junit?.suiteName, 'cucumber-js');
|
|
19
|
+
options.eventBroadcaster.on('envelope', (envelope) => {
|
|
20
|
+
if ((0, value_checker_1.doesHaveValue)(envelope.testRunFinished)) {
|
|
21
|
+
this.onTestRunFinished();
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
getTestCases() {
|
|
26
|
+
return this.eventDataCollector.getTestCaseAttempts().filter(attempt => !attempt.willBeRetried);
|
|
27
|
+
}
|
|
28
|
+
getTestSteps(testCaseAttempt, gherkinStepMap, pickleStepMap) {
|
|
29
|
+
return testCaseAttempt.testCase.testSteps.map(testStep => {
|
|
30
|
+
const isBeforeHook = !(0, value_checker_1.doesHaveValue)(testStep.pickleStepId);
|
|
31
|
+
return this.getTestStep({
|
|
32
|
+
isBeforeHook,
|
|
33
|
+
gherkinStepMap,
|
|
34
|
+
pickleStepMap,
|
|
35
|
+
testStep,
|
|
36
|
+
testStepAttachments: testCaseAttempt.stepAttachments[testStep.id],
|
|
37
|
+
testStepResult: testCaseAttempt.stepResults[testStep.id]
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
getTestStep({ isBeforeHook, gherkinStepMap, pickleStepMap, testStep, testStepAttachments, testStepResult }) {
|
|
42
|
+
const data = {};
|
|
43
|
+
if (testStep.pickleStepId) {
|
|
44
|
+
const pickleStep = pickleStepMap[testStep.pickleStepId];
|
|
45
|
+
data.keyword = (0, pickle_parser_1.getStepKeyword)({ pickleStep, gherkinStepMap });
|
|
46
|
+
data.line = gherkinStepMap[pickleStep.astNodeIds[0]].location.line;
|
|
47
|
+
data.name = pickleStep.text;
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
data.keyword = isBeforeHook ? 'Before' : 'After';
|
|
51
|
+
data.hidden = true;
|
|
52
|
+
}
|
|
53
|
+
data.result = testStepResult;
|
|
54
|
+
data.time = testStepResult.duration ? this.durationToSeconds(testStepResult.duration) : 0;
|
|
55
|
+
data.attachments = testStepAttachments;
|
|
56
|
+
return data;
|
|
57
|
+
}
|
|
58
|
+
getTestCaseResult(steps) {
|
|
59
|
+
const { status, message, exception } = (0, messages_1.getWorstTestStepResult)(steps.map(step => step.result));
|
|
60
|
+
return {
|
|
61
|
+
status,
|
|
62
|
+
failure: message || exception
|
|
63
|
+
? {
|
|
64
|
+
type: exception?.type,
|
|
65
|
+
message: exception?.message,
|
|
66
|
+
detail: message
|
|
67
|
+
}
|
|
68
|
+
: undefined
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
durationToSeconds(duration) {
|
|
72
|
+
const NANOS_IN_SECOND = 1000000000;
|
|
73
|
+
return (duration.seconds * NANOS_IN_SECOND + duration.nanos) / NANOS_IN_SECOND;
|
|
74
|
+
}
|
|
75
|
+
nameOrDefault(name, fallbackSuffix) {
|
|
76
|
+
if (!name) {
|
|
77
|
+
return `(unnamed ${fallbackSuffix})`;
|
|
78
|
+
}
|
|
79
|
+
return name;
|
|
80
|
+
}
|
|
81
|
+
getTestCaseName(feature, rule, pickle) {
|
|
82
|
+
const featureName = this.nameOrDefault(feature.name, 'feature');
|
|
83
|
+
const pickleName = this.nameOrDefault(pickle.name, 'scenario');
|
|
84
|
+
const testCaseName = rule ? this.nameOrDefault(rule.name, 'rule') + ': ' + pickleName : pickleName;
|
|
85
|
+
if (!this.names[featureName]) {
|
|
86
|
+
this.names[featureName] = [];
|
|
87
|
+
}
|
|
88
|
+
let index = 0;
|
|
89
|
+
while (this.names[featureName].includes(index > 0 ? `${testCaseName} [${index}]` : testCaseName)) {
|
|
90
|
+
index++;
|
|
91
|
+
}
|
|
92
|
+
const name = index > 0 ? `${testCaseName} [${index}]` : testCaseName;
|
|
93
|
+
this.names[featureName].push(name);
|
|
94
|
+
return name;
|
|
95
|
+
}
|
|
96
|
+
formatTestSteps(steps) {
|
|
97
|
+
return steps
|
|
98
|
+
.filter(step => !step.hidden)
|
|
99
|
+
.map(step => {
|
|
100
|
+
const statusText = step.result.status.toLowerCase();
|
|
101
|
+
const maxLength = 80 - statusText.length - 3;
|
|
102
|
+
const stepText = `${step.keyword}${step.name}`.padEnd(maxLength, '.').substring(0, maxLength);
|
|
103
|
+
return `${stepText}...${statusText}`;
|
|
104
|
+
})
|
|
105
|
+
.join('\n');
|
|
106
|
+
}
|
|
107
|
+
onTestRunFinished() {
|
|
108
|
+
const testCases = this.getTestCases();
|
|
109
|
+
const tests = testCases.map((testCaseAttempt) => {
|
|
110
|
+
const { gherkinDocument, pickle } = testCaseAttempt;
|
|
111
|
+
const { feature } = gherkinDocument;
|
|
112
|
+
const gherkinExampleRuleMap = (0, gherkin_document_parser_1.getGherkinExampleRuleMap)(gherkinDocument);
|
|
113
|
+
const rule = gherkinExampleRuleMap[pickle.astNodeIds[0]];
|
|
114
|
+
const gherkinStepMap = (0, gherkin_document_parser_1.getGherkinStepMap)(gherkinDocument);
|
|
115
|
+
const pickleStepMap = (0, pickle_parser_1.getPickleStepMap)(pickle);
|
|
116
|
+
const steps = this.getTestSteps(testCaseAttempt, gherkinStepMap, pickleStepMap);
|
|
117
|
+
const stepDuration = steps.reduce((total, step) => total + (step.time || 0), 0);
|
|
118
|
+
return {
|
|
119
|
+
classname: this.nameOrDefault(feature?.name ?? '', 'feature'),
|
|
120
|
+
name: this.getTestCaseName(feature ?? {}, rule, pickle),
|
|
121
|
+
time: stepDuration,
|
|
122
|
+
result: this.getTestCaseResult(steps),
|
|
123
|
+
systemOutput: this.formatTestSteps(steps),
|
|
124
|
+
steps
|
|
125
|
+
};
|
|
126
|
+
});
|
|
127
|
+
const passed = tests.filter(item => item.result.status === messages_1.TestStepResultStatus.PASSED).length;
|
|
128
|
+
const skipped = tests.filter(item => item.result.status === messages_1.TestStepResultStatus.SKIPPED ||
|
|
129
|
+
item.result.status === messages_1.TestStepResultStatus.UNDEFINED ||
|
|
130
|
+
item.result.status === messages_1.TestStepResultStatus.PENDING).length;
|
|
131
|
+
const failures = tests.length - passed - skipped;
|
|
132
|
+
const testSuite = {
|
|
133
|
+
name: this.suiteName,
|
|
134
|
+
tests,
|
|
135
|
+
failures,
|
|
136
|
+
skipped,
|
|
137
|
+
time: tests.reduce((total, test) => total + test.time, 0)
|
|
138
|
+
};
|
|
139
|
+
this.log(this.buildXmlReport(testSuite));
|
|
140
|
+
}
|
|
141
|
+
buildXmlReport(testSuite) {
|
|
142
|
+
const xmlReport = xmlbuilder_1.default
|
|
143
|
+
.create('testsuite', { invalidCharReplacement: '' })
|
|
144
|
+
.att('failures', testSuite.failures)
|
|
145
|
+
.att('skipped', testSuite.skipped)
|
|
146
|
+
.att('name', testSuite.name)
|
|
147
|
+
.att('time', testSuite.time)
|
|
148
|
+
.att('tests', testSuite.tests.length);
|
|
149
|
+
testSuite.tests.forEach(test => {
|
|
150
|
+
const xmlTestCase = xmlReport.ele('testcase', {
|
|
151
|
+
classname: test.classname,
|
|
152
|
+
name: test.name,
|
|
153
|
+
time: test.time
|
|
154
|
+
});
|
|
155
|
+
if (test.result.status === messages_1.TestStepResultStatus.SKIPPED) {
|
|
156
|
+
xmlTestCase.ele('skipped');
|
|
157
|
+
}
|
|
158
|
+
else if (test.result.status !== messages_1.TestStepResultStatus.PASSED) {
|
|
159
|
+
const xmlFailure = xmlTestCase.ele('failure', {
|
|
160
|
+
type: test.result.failure?.type,
|
|
161
|
+
message: test.result.failure?.message
|
|
162
|
+
});
|
|
163
|
+
if (test.result?.failure) {
|
|
164
|
+
xmlFailure.cdata(test.result.failure.detail);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
xmlTestCase.ele('system-out', {}).cdata(test.systemOutput);
|
|
168
|
+
});
|
|
169
|
+
return xmlReport.end({ pretty: true });
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
exports.default = JunitBambooFormatter;
|
|
173
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianVuaXQtYmFtYm9vLWZvcm1hdHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mb3JtYXR0ZXJzL2p1bml0LWJhbWJvby1mb3JtYXR0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw0REFBb0M7QUFFcEMsaURBUzRCO0FBRTVCLHdFQUFxRjtBQUNyRiwwRkFBMEc7QUFDMUcsOEdBRzBFO0FBQzFFLGlEQUFrRTtBQWlEbEUsTUFBcUIsb0JBQXFCLFNBQVEsb0JBQVM7SUFDekMsS0FBSyxHQUE2QixFQUFFLENBQUM7SUFDckMsU0FBUyxDQUFTO0lBQzVCLE1BQU0sQ0FBVSxhQUFhLEdBQVcsc0JBQXNCLENBQUM7SUFFdEUsWUFBWSxPQUEwQjtRQUNyQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDZixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUEsOEJBQWMsRUFBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUMzRixPQUFPLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxDQUFDLFFBQTJCLEVBQUUsRUFBRTtZQUN2RSxJQUFJLElBQUEsNkJBQWEsRUFBQyxRQUFRLENBQUMsZUFBZSxDQUFDLEVBQUU7Z0JBQzVDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO2FBQ3pCO1FBQ0YsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBRU8sWUFBWTtRQUNuQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ2hHLENBQUM7SUFFTyxZQUFZLENBQ25CLGVBQWlDLEVBQ2pDLGNBQTZDLEVBQzdDLGFBQWtEO1FBRWxELE9BQU8sZUFBZSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FB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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
const junitbamboo = __importStar(require("./formatters/junit-bamboo-formatter"));
|
|
27
|
+
module.exports = junitbamboo;
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianVuaXRiYW1ib28uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvanVuaXRiYW1ib28udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGlGQUFtRTtBQUVuRSxNQUFNLENBQUMsT0FBTyxHQUFHLFdBQVcsQ0FBQyJ9
|
package/lib/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const version = "6.2.
|
|
1
|
+
export declare const version = "6.2.2";
|
package/lib/version.js
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.version = void 0;
|
|
4
4
|
// Generated by genversion.
|
|
5
|
-
exports.version = '6.2.
|
|
5
|
+
exports.version = '6.2.2';
|
|
6
6
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDJCQUEyQjtBQUNkLFFBQUEsT0FBTyxHQUFHLE9BQU8sQ0FBQSJ9
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lynxwall/cucumber-tsflow",
|
|
3
3
|
"description": "Provides 'specflow' like bindings for CucumberJS 9.1.0+ in TypeScript 4.0+.",
|
|
4
|
-
"version": "6.2.
|
|
4
|
+
"version": "6.2.2",
|
|
5
5
|
"author": "Lonnie Wall <lynxdev@lynxwall.com>",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"main": "./lib/index",
|
|
@@ -28,6 +28,7 @@
|
|
|
28
28
|
"@rollup/pluginutils": "~5.0.5",
|
|
29
29
|
"@types/node": "~18.15.13",
|
|
30
30
|
"chalk": "~4.1.2",
|
|
31
|
+
"commander": "^10.0.1",
|
|
31
32
|
"esbuild": "~0.17.18",
|
|
32
33
|
"glob": "~9.3.5",
|
|
33
34
|
"hash-sum": "~2.0.0",
|