@dev-blinq/cucumber-js 1.0.35 → 1.0.36
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/bin/cucumber-js +0 -0
- package/bin/cucumber.js +0 -0
- package/lib/api/console_logger.d.ts +12 -12
- package/lib/api/console_logger.js +23 -23
- package/lib/api/convert_configuration.d.ts +4 -4
- package/lib/api/convert_configuration.js +65 -65
- package/lib/api/environment.d.ts +2 -2
- package/lib/api/environment.js +13 -13
- package/lib/api/formatters.d.ts +20 -20
- package/lib/api/formatters.js +60 -60
- package/lib/api/gherkin.d.ts +21 -21
- package/lib/api/gherkin.js +99 -99
- package/lib/api/index.d.ts +12 -12
- package/lib/api/index.js +27 -27
- package/lib/api/load_configuration.d.ts +9 -9
- package/lib/api/load_configuration.js +40 -40
- package/lib/api/load_sources.d.ts +9 -9
- package/lib/api/load_sources.js +52 -52
- package/lib/api/load_support.d.ts +10 -10
- package/lib/api/load_support.js +29 -29
- package/lib/api/paths.d.ts +8 -8
- package/lib/api/paths.js +101 -101
- package/lib/api/plugins.d.ts +4 -4
- package/lib/api/plugins.js +18 -18
- package/lib/api/run_cucumber.d.ts +11 -11
- package/lib/api/run_cucumber.js +114 -114
- package/lib/api/runtime.d.ts +21 -21
- package/lib/api/runtime.js +35 -35
- package/lib/api/support.d.ts +9 -9
- package/lib/api/support.js +25 -25
- package/lib/api/test_helpers.d.ts +3 -3
- package/lib/api/test_helpers.js +30 -30
- package/lib/api/types.d.ts +177 -177
- package/lib/api/types.js +2 -2
- package/lib/cli/helpers.d.ts +39 -39
- package/lib/cli/helpers.js +223 -223
- package/lib/cli/i18n.d.ts +2 -2
- package/lib/cli/i18n.js +69 -69
- package/lib/cli/index.d.ts +21 -21
- package/lib/cli/index.js +63 -63
- package/lib/cli/install_validator.d.ts +1 -1
- package/lib/cli/install_validator.js +13 -13
- package/lib/cli/run.d.ts +1 -1
- package/lib/cli/run.js +43 -43
- package/lib/cli/validate_node_engine_version.d.ts +10 -10
- package/lib/cli/validate_node_engine_version.js +23 -23
- package/lib/configuration/argv_parser.d.ts +20 -20
- package/lib/configuration/argv_parser.js +102 -102
- package/lib/configuration/check_schema.d.ts +2 -2
- package/lib/configuration/check_schema.js +59 -59
- package/lib/configuration/default_configuration.d.ts +2 -2
- package/lib/configuration/default_configuration.js +28 -28
- package/lib/configuration/from_file.d.ts +3 -3
- package/lib/configuration/from_file.js +84 -84
- package/lib/configuration/helpers.d.ts +1 -1
- package/lib/configuration/helpers.js +10 -10
- package/lib/configuration/index.d.ts +7 -7
- package/lib/configuration/index.js +28 -28
- package/lib/configuration/locate_file.d.ts +1 -1
- package/lib/configuration/locate_file.js +20 -20
- package/lib/configuration/merge_configurations.d.ts +2 -2
- package/lib/configuration/merge_configurations.js +47 -47
- package/lib/configuration/option_splitter.d.ts +3 -3
- package/lib/configuration/option_splitter.js +22 -22
- package/lib/configuration/types.d.ts +30 -30
- package/lib/configuration/types.js +2 -2
- package/lib/configuration/validate_configuration.d.ts +3 -3
- package/lib/configuration/validate_configuration.js +12 -12
- package/lib/filter_stack_trace.d.ts +3 -3
- package/lib/filter_stack_trace.js +37 -37
- package/lib/formatter/builder.d.ts +37 -37
- package/lib/formatter/builder.js +100 -100
- package/lib/formatter/bvt_analysis_formatter.d.ts +18 -18
- package/lib/formatter/bvt_analysis_formatter.js +192 -192
- package/lib/formatter/feature_data_format.d.ts +14 -14
- package/lib/formatter/feature_data_format.js +80 -80
- package/lib/formatter/fixtures/typescript.d.ts +2 -2
- package/lib/formatter/fixtures/typescript.js +5 -5
- package/lib/formatter/get_color_fns.d.ts +15 -15
- package/lib/formatter/get_color_fns.js +55 -55
- package/lib/formatter/helpers/duration_helpers.d.ts +2 -2
- package/lib/formatter/helpers/duration_helpers.js +8 -8
- package/lib/formatter/helpers/event_data_collector.d.ts +30 -30
- package/lib/formatter/helpers/event_data_collector.js +125 -125
- package/lib/formatter/helpers/formatters.d.ts +6 -6
- package/lib/formatter/helpers/formatters.js +44 -44
- package/lib/formatter/helpers/gherkin_document_parser.d.ts +5 -5
- package/lib/formatter/helpers/gherkin_document_parser.js +65 -65
- package/lib/formatter/helpers/index.d.ts +10 -10
- package/lib/formatter/helpers/index.js +51 -51
- package/lib/formatter/helpers/issue_helpers.d.ts +19 -19
- package/lib/formatter/helpers/issue_helpers.js +58 -58
- package/lib/formatter/helpers/keyword_type.d.ts +11 -11
- package/lib/formatter/helpers/keyword_type.js +31 -31
- package/lib/formatter/helpers/location_helpers.d.ts +2 -2
- package/lib/formatter/helpers/location_helpers.js +16 -16
- package/lib/formatter/helpers/pickle_parser.d.ts +17 -17
- package/lib/formatter/helpers/pickle_parser.js +27 -27
- package/lib/formatter/helpers/report_generator.d.ts +103 -103
- package/lib/formatter/helpers/report_generator.js +247 -247
- package/lib/formatter/helpers/step_argument_formatter.d.ts +2 -2
- package/lib/formatter/helpers/step_argument_formatter.js +47 -47
- package/lib/formatter/helpers/summary_helpers.d.ts +9 -9
- package/lib/formatter/helpers/summary_helpers.js +95 -95
- package/lib/formatter/helpers/test_case_attempt_formatter.d.ts +12 -12
- package/lib/formatter/helpers/test_case_attempt_formatter.js +113 -113
- package/lib/formatter/helpers/test_case_attempt_parser.d.ts +32 -32
- package/lib/formatter/helpers/test_case_attempt_parser.js +134 -134
- package/lib/formatter/helpers/upload_serivce.d.ts +9 -9
- package/lib/formatter/helpers/upload_serivce.js +46 -46
- package/lib/formatter/helpers/uploader.d.ts +11 -11
- package/lib/formatter/helpers/uploader.js +56 -56
- package/lib/formatter/helpers/usage_helpers/index.d.ts +23 -23
- package/lib/formatter/helpers/usage_helpers/index.js +110 -110
- package/lib/formatter/html_formatter.d.ts +7 -7
- package/lib/formatter/html_formatter.js +29 -29
- package/lib/formatter/index.d.ts +53 -53
- package/lib/formatter/index.js +20 -20
- package/lib/formatter/json_formatter.d.ts +78 -78
- package/lib/formatter/json_formatter.js +229 -229
- package/lib/formatter/junit_formatter.d.ts +17 -17
- package/lib/formatter/junit_formatter.js +180 -180
- package/lib/formatter/message_formatter.d.ts +5 -5
- package/lib/formatter/message_formatter.js +14 -14
- package/lib/formatter/progress_bar_formatter.d.ts +18 -18
- package/lib/formatter/progress_bar_formatter.js +98 -98
- package/lib/formatter/progress_formatter.d.ts +9 -9
- package/lib/formatter/progress_formatter.js +58 -58
- package/lib/formatter/rerun_formatter.d.ts +13 -13
- package/lib/formatter/rerun_formatter.js +79 -79
- package/lib/formatter/snippets_formatter.d.ts +6 -6
- package/lib/formatter/snippets_formatter.js +60 -60
- package/lib/formatter/step_definition_snippet_builder/index.d.ts +20 -20
- package/lib/formatter/step_definition_snippet_builder/index.js +45 -45
- package/lib/formatter/step_definition_snippet_builder/javascript_snippet_syntax.d.ts +7 -7
- package/lib/formatter/step_definition_snippet_builder/javascript_snippet_syntax.js +45 -45
- package/lib/formatter/step_definition_snippet_builder/snippet_syntax.d.ts +16 -16
- package/lib/formatter/step_definition_snippet_builder/snippet_syntax.js +10 -10
- package/lib/formatter/summary_formatter.d.ts +14 -14
- package/lib/formatter/summary_formatter.js +67 -67
- package/lib/formatter/usage_formatter.d.ts +6 -6
- package/lib/formatter/usage_formatter.js +97 -97
- package/lib/formatter/usage_json_formatter.d.ts +7 -7
- package/lib/formatter/usage_json_formatter.js +33 -33
- package/lib/index.d.ts +58 -58
- package/lib/index.js +108 -108
- package/lib/logger.d.ts +5 -5
- package/lib/logger.js +2 -2
- package/lib/models/data_table.d.ts +10 -10
- package/lib/models/data_table.js +45 -45
- package/lib/models/definition.d.ts +55 -55
- package/lib/models/definition.js +21 -21
- package/lib/models/gherkin_step_keyword.d.ts +1 -1
- package/lib/models/gherkin_step_keyword.js +2 -2
- package/lib/models/pickle_order.d.ts +1 -1
- package/lib/models/pickle_order.js +2 -2
- package/lib/models/step_definition.d.ts +11 -11
- package/lib/models/step_definition.js +36 -36
- package/lib/models/test_case_hook_definition.d.ts +10 -10
- package/lib/models/test_case_hook_definition.js +26 -26
- package/lib/models/test_run_hook_definition.d.ts +3 -3
- package/lib/models/test_run_hook_definition.js +9 -9
- package/lib/models/test_step_hook_definition.d.ts +9 -9
- package/lib/models/test_step_hook_definition.js +25 -25
- package/lib/pickle_filter.d.ts +42 -42
- package/lib/pickle_filter.js +98 -98
- package/lib/plugin/index.d.ts +2 -2
- package/lib/plugin/index.js +18 -18
- package/lib/plugin/plugin_manager.d.ts +13 -13
- package/lib/plugin/plugin_manager.js +35 -35
- package/lib/plugin/types.d.ts +14 -14
- package/lib/plugin/types.js +2 -2
- package/lib/publish/http_stream.d.ts +30 -30
- package/lib/publish/http_stream.js +111 -111
- package/lib/publish/index.d.ts +2 -2
- package/lib/publish/index.js +4 -4
- package/lib/publish/publish_plugin.d.ts +2 -2
- package/lib/publish/publish_plugin.js +47 -47
- package/lib/runtime/assemble_test_cases.d.ts +13 -13
- package/lib/runtime/assemble_test_cases.js +87 -87
- package/lib/runtime/attachment_manager/index.d.ts +33 -33
- package/lib/runtime/attachment_manager/index.js +118 -118
- package/lib/runtime/format_error.d.ts +2 -2
- package/lib/runtime/format_error.js +35 -35
- package/lib/runtime/helpers.d.ts +6 -6
- package/lib/runtime/helpers.js +100 -100
- package/lib/runtime/index.d.ts +40 -40
- package/lib/runtime/index.js +75 -75
- package/lib/runtime/parallel/command_types.d.ts +32 -32
- package/lib/runtime/parallel/command_types.js +2 -2
- package/lib/runtime/parallel/coordinator.d.ts +72 -72
- package/lib/runtime/parallel/coordinator.js +221 -221
- package/lib/runtime/parallel/run_worker.d.ts +1 -1
- package/lib/runtime/parallel/run_worker.js +28 -28
- package/lib/runtime/parallel/worker.d.ts +26 -26
- package/lib/runtime/parallel/worker.js +86 -86
- package/lib/runtime/run_test_run_hooks.d.ts +3 -3
- package/lib/runtime/run_test_run_hooks.js +27 -27
- package/lib/runtime/step_runner.d.ts +16 -16
- package/lib/runtime/step_runner.js +87 -87
- package/lib/runtime/stopwatch.d.ts +12 -12
- package/lib/runtime/stopwatch.js +33 -33
- package/lib/runtime/test_case_runner.d.ts +54 -54
- package/lib/runtime/test_case_runner.js +267 -267
- package/lib/step_arguments.d.ts +6 -6
- package/lib/step_arguments.js +18 -18
- package/lib/support_code_library_builder/build_parameter_type.d.ts +3 -3
- package/lib/support_code_library_builder/build_parameter_type.js +12 -12
- package/lib/support_code_library_builder/get_definition_line_and_uri.d.ts +3 -3
- package/lib/support_code_library_builder/get_definition_line_and_uri.js +28 -28
- package/lib/support_code_library_builder/index.d.ts +74 -74
- package/lib/support_code_library_builder/index.js +296 -296
- package/lib/support_code_library_builder/parallel_can_assign_helpers.d.ts +2 -2
- package/lib/support_code_library_builder/parallel_can_assign_helpers.js +15 -15
- package/lib/support_code_library_builder/sourced_parameter_type_registry.d.ts +7 -7
- package/lib/support_code_library_builder/sourced_parameter_type_registry.js +18 -18
- package/lib/support_code_library_builder/types.d.ts +88 -88
- package/lib/support_code_library_builder/types.js +2 -2
- package/lib/support_code_library_builder/validate_arguments.d.ts +12 -12
- package/lib/support_code_library_builder/validate_arguments.js +72 -72
- package/lib/support_code_library_builder/world.d.ts +18 -18
- package/lib/support_code_library_builder/world.js +10 -10
- package/lib/time.d.ts +18 -18
- package/lib/time.js +60 -60
- package/lib/try_require.d.ts +7 -7
- package/lib/try_require.js +22 -22
- package/lib/types/index.d.ts +4 -4
- package/lib/types/index.js +2 -2
- package/lib/uncaught_exception_manager.d.ts +7 -7
- package/lib/uncaught_exception_manager.js +11 -11
- package/lib/user_code_runner.d.ts +14 -14
- package/lib/user_code_runner.js +81 -81
- package/lib/value_checker.d.ts +3 -3
- package/lib/value_checker.js +18 -18
- package/lib/version.d.ts +1 -1
- package/lib/version.js +5 -5
- package/lib/version.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,111 +1,111 @@
|
|
|
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
|
-
exports.getUsage = void 0;
|
|
27
|
-
const pickle_parser_1 = require("../pickle_parser");
|
|
28
|
-
const gherkin_document_parser_1 = require("../gherkin_document_parser");
|
|
29
|
-
const messages = __importStar(require("@cucumber/messages"));
|
|
30
|
-
const value_checker_1 = require("../../../value_checker");
|
|
31
|
-
function buildEmptyMapping(stepDefinitions) {
|
|
32
|
-
const mapping = {};
|
|
33
|
-
stepDefinitions.forEach((stepDefinition) => {
|
|
34
|
-
mapping[stepDefinition.id] = {
|
|
35
|
-
code: stepDefinition.unwrappedCode.toString(),
|
|
36
|
-
line: stepDefinition.line,
|
|
37
|
-
pattern: stepDefinition.expression.source,
|
|
38
|
-
patternType: stepDefinition.expression.constructor.name,
|
|
39
|
-
matches: [],
|
|
40
|
-
uri: stepDefinition.uri,
|
|
41
|
-
};
|
|
42
|
-
});
|
|
43
|
-
return mapping;
|
|
44
|
-
}
|
|
45
|
-
const unexecutedStatuses = [
|
|
46
|
-
messages.TestStepResultStatus.AMBIGUOUS,
|
|
47
|
-
messages.TestStepResultStatus.SKIPPED,
|
|
48
|
-
messages.TestStepResultStatus.UNDEFINED,
|
|
49
|
-
];
|
|
50
|
-
function buildMapping({ stepDefinitions, eventDataCollector, }) {
|
|
51
|
-
const mapping = buildEmptyMapping(stepDefinitions);
|
|
52
|
-
eventDataCollector.getTestCaseAttempts().forEach((testCaseAttempt) => {
|
|
53
|
-
const pickleStepMap = (0, pickle_parser_1.getPickleStepMap)(testCaseAttempt.pickle);
|
|
54
|
-
const gherkinStepMap = (0, gherkin_document_parser_1.getGherkinStepMap)(testCaseAttempt.gherkinDocument);
|
|
55
|
-
testCaseAttempt.testCase.testSteps.forEach((testStep) => {
|
|
56
|
-
if ((0, value_checker_1.doesHaveValue)(testStep.pickleStepId) &&
|
|
57
|
-
testStep.stepDefinitionIds.length === 1) {
|
|
58
|
-
const stepDefinitionId = testStep.stepDefinitionIds[0];
|
|
59
|
-
const pickleStep = pickleStepMap[testStep.pickleStepId];
|
|
60
|
-
const gherkinStep = gherkinStepMap[pickleStep.astNodeIds[0]];
|
|
61
|
-
const match = {
|
|
62
|
-
line: gherkinStep.location.line,
|
|
63
|
-
text: pickleStep.text,
|
|
64
|
-
uri: testCaseAttempt.pickle.uri,
|
|
65
|
-
};
|
|
66
|
-
const { duration, status } = testCaseAttempt.stepResults[testStep.id];
|
|
67
|
-
if (!unexecutedStatuses.includes(status) && (0, value_checker_1.doesHaveValue)(duration)) {
|
|
68
|
-
match.duration = duration;
|
|
69
|
-
}
|
|
70
|
-
if ((0, value_checker_1.doesHaveValue)(mapping[stepDefinitionId])) {
|
|
71
|
-
mapping[stepDefinitionId].matches.push(match);
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
});
|
|
75
|
-
});
|
|
76
|
-
return mapping;
|
|
77
|
-
}
|
|
78
|
-
function normalizeDuration(duration) {
|
|
79
|
-
if (duration == null) {
|
|
80
|
-
return Number.MIN_SAFE_INTEGER;
|
|
81
|
-
}
|
|
82
|
-
return messages.TimeConversion.durationToMilliseconds(duration);
|
|
83
|
-
}
|
|
84
|
-
function buildResult(mapping) {
|
|
85
|
-
return Object.keys(mapping)
|
|
86
|
-
.map((stepDefinitionId) => {
|
|
87
|
-
const { matches, ...rest } = mapping[stepDefinitionId];
|
|
88
|
-
const sortedMatches = matches.sort((a, b) => {
|
|
89
|
-
if (a.duration === b.duration) {
|
|
90
|
-
return a.text < b.text ? -1 : 1;
|
|
91
|
-
}
|
|
92
|
-
return normalizeDuration(b.duration) - normalizeDuration(a.duration);
|
|
93
|
-
});
|
|
94
|
-
const result = { matches: sortedMatches, ...rest };
|
|
95
|
-
const durations = matches
|
|
96
|
-
.filter((m) => m.duration != null)
|
|
97
|
-
.map((m) => m.duration);
|
|
98
|
-
if (durations.length > 0) {
|
|
99
|
-
const totalMilliseconds = durations.reduce((acc, x) => acc + messages.TimeConversion.durationToMilliseconds(x), 0);
|
|
100
|
-
result.meanDuration = messages.TimeConversion.millisecondsToDuration(totalMilliseconds / durations.length);
|
|
101
|
-
}
|
|
102
|
-
return result;
|
|
103
|
-
})
|
|
104
|
-
.sort((a, b) => normalizeDuration(b.meanDuration) - normalizeDuration(a.meanDuration));
|
|
105
|
-
}
|
|
106
|
-
function getUsage({ stepDefinitions, eventDataCollector, }) {
|
|
107
|
-
const mapping = buildMapping({ stepDefinitions, eventDataCollector });
|
|
108
|
-
return buildResult(mapping);
|
|
109
|
-
}
|
|
110
|
-
exports.getUsage = getUsage;
|
|
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
|
+
exports.getUsage = void 0;
|
|
27
|
+
const pickle_parser_1 = require("../pickle_parser");
|
|
28
|
+
const gherkin_document_parser_1 = require("../gherkin_document_parser");
|
|
29
|
+
const messages = __importStar(require("@cucumber/messages"));
|
|
30
|
+
const value_checker_1 = require("../../../value_checker");
|
|
31
|
+
function buildEmptyMapping(stepDefinitions) {
|
|
32
|
+
const mapping = {};
|
|
33
|
+
stepDefinitions.forEach((stepDefinition) => {
|
|
34
|
+
mapping[stepDefinition.id] = {
|
|
35
|
+
code: stepDefinition.unwrappedCode.toString(),
|
|
36
|
+
line: stepDefinition.line,
|
|
37
|
+
pattern: stepDefinition.expression.source,
|
|
38
|
+
patternType: stepDefinition.expression.constructor.name,
|
|
39
|
+
matches: [],
|
|
40
|
+
uri: stepDefinition.uri,
|
|
41
|
+
};
|
|
42
|
+
});
|
|
43
|
+
return mapping;
|
|
44
|
+
}
|
|
45
|
+
const unexecutedStatuses = [
|
|
46
|
+
messages.TestStepResultStatus.AMBIGUOUS,
|
|
47
|
+
messages.TestStepResultStatus.SKIPPED,
|
|
48
|
+
messages.TestStepResultStatus.UNDEFINED,
|
|
49
|
+
];
|
|
50
|
+
function buildMapping({ stepDefinitions, eventDataCollector, }) {
|
|
51
|
+
const mapping = buildEmptyMapping(stepDefinitions);
|
|
52
|
+
eventDataCollector.getTestCaseAttempts().forEach((testCaseAttempt) => {
|
|
53
|
+
const pickleStepMap = (0, pickle_parser_1.getPickleStepMap)(testCaseAttempt.pickle);
|
|
54
|
+
const gherkinStepMap = (0, gherkin_document_parser_1.getGherkinStepMap)(testCaseAttempt.gherkinDocument);
|
|
55
|
+
testCaseAttempt.testCase.testSteps.forEach((testStep) => {
|
|
56
|
+
if ((0, value_checker_1.doesHaveValue)(testStep.pickleStepId) &&
|
|
57
|
+
testStep.stepDefinitionIds.length === 1) {
|
|
58
|
+
const stepDefinitionId = testStep.stepDefinitionIds[0];
|
|
59
|
+
const pickleStep = pickleStepMap[testStep.pickleStepId];
|
|
60
|
+
const gherkinStep = gherkinStepMap[pickleStep.astNodeIds[0]];
|
|
61
|
+
const match = {
|
|
62
|
+
line: gherkinStep.location.line,
|
|
63
|
+
text: pickleStep.text,
|
|
64
|
+
uri: testCaseAttempt.pickle.uri,
|
|
65
|
+
};
|
|
66
|
+
const { duration, status } = testCaseAttempt.stepResults[testStep.id];
|
|
67
|
+
if (!unexecutedStatuses.includes(status) && (0, value_checker_1.doesHaveValue)(duration)) {
|
|
68
|
+
match.duration = duration;
|
|
69
|
+
}
|
|
70
|
+
if ((0, value_checker_1.doesHaveValue)(mapping[stepDefinitionId])) {
|
|
71
|
+
mapping[stepDefinitionId].matches.push(match);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
return mapping;
|
|
77
|
+
}
|
|
78
|
+
function normalizeDuration(duration) {
|
|
79
|
+
if (duration == null) {
|
|
80
|
+
return Number.MIN_SAFE_INTEGER;
|
|
81
|
+
}
|
|
82
|
+
return messages.TimeConversion.durationToMilliseconds(duration);
|
|
83
|
+
}
|
|
84
|
+
function buildResult(mapping) {
|
|
85
|
+
return Object.keys(mapping)
|
|
86
|
+
.map((stepDefinitionId) => {
|
|
87
|
+
const { matches, ...rest } = mapping[stepDefinitionId];
|
|
88
|
+
const sortedMatches = matches.sort((a, b) => {
|
|
89
|
+
if (a.duration === b.duration) {
|
|
90
|
+
return a.text < b.text ? -1 : 1;
|
|
91
|
+
}
|
|
92
|
+
return normalizeDuration(b.duration) - normalizeDuration(a.duration);
|
|
93
|
+
});
|
|
94
|
+
const result = { matches: sortedMatches, ...rest };
|
|
95
|
+
const durations = matches
|
|
96
|
+
.filter((m) => m.duration != null)
|
|
97
|
+
.map((m) => m.duration);
|
|
98
|
+
if (durations.length > 0) {
|
|
99
|
+
const totalMilliseconds = durations.reduce((acc, x) => acc + messages.TimeConversion.durationToMilliseconds(x), 0);
|
|
100
|
+
result.meanDuration = messages.TimeConversion.millisecondsToDuration(totalMilliseconds / durations.length);
|
|
101
|
+
}
|
|
102
|
+
return result;
|
|
103
|
+
})
|
|
104
|
+
.sort((a, b) => normalizeDuration(b.meanDuration) - normalizeDuration(a.meanDuration));
|
|
105
|
+
}
|
|
106
|
+
function getUsage({ stepDefinitions, eventDataCollector, }) {
|
|
107
|
+
const mapping = buildMapping({ stepDefinitions, eventDataCollector });
|
|
108
|
+
return buildResult(mapping);
|
|
109
|
+
}
|
|
110
|
+
exports.getUsage = getUsage;
|
|
111
111
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import Formatter, { IFormatterOptions } from '.';
|
|
2
|
-
export default class HtmlFormatter extends Formatter {
|
|
3
|
-
private readonly _htmlStream;
|
|
4
|
-
static readonly documentation: string;
|
|
5
|
-
constructor(options: IFormatterOptions);
|
|
6
|
-
finished(): Promise<void>;
|
|
7
|
-
}
|
|
1
|
+
import Formatter, { IFormatterOptions } from '.';
|
|
2
|
+
export default class HtmlFormatter extends Formatter {
|
|
3
|
+
private readonly _htmlStream;
|
|
4
|
+
static readonly documentation: string;
|
|
5
|
+
constructor(options: IFormatterOptions);
|
|
6
|
+
finished(): Promise<void>;
|
|
7
|
+
}
|
|
@@ -1,30 +1,30 @@
|
|
|
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 _1 = __importDefault(require("."));
|
|
7
|
-
const resolve_pkg_1 = __importDefault(require("resolve-pkg"));
|
|
8
|
-
const html_formatter_1 = __importDefault(require("@cucumber/html-formatter"));
|
|
9
|
-
const stream_1 = require("stream");
|
|
10
|
-
const util_1 = require("util");
|
|
11
|
-
class HtmlFormatter extends _1.default {
|
|
12
|
-
constructor(options) {
|
|
13
|
-
super(options);
|
|
14
|
-
this._htmlStream = new html_formatter_1.default((0, resolve_pkg_1.default)('@cucumber/html-formatter', { cwd: __dirname }) +
|
|
15
|
-
'/dist/main.css', (0, resolve_pkg_1.default)('@cucumber/html-formatter', { cwd: __dirname }) +
|
|
16
|
-
'/dist/main.js');
|
|
17
|
-
options.eventBroadcaster.on('envelope', (envelope) => {
|
|
18
|
-
this._htmlStream.write(envelope);
|
|
19
|
-
});
|
|
20
|
-
this._htmlStream.on('data', (chunk) => this.log(chunk));
|
|
21
|
-
}
|
|
22
|
-
async finished() {
|
|
23
|
-
this._htmlStream.end();
|
|
24
|
-
await (0, util_1.promisify)(stream_1.finished)(this._htmlStream);
|
|
25
|
-
await super.finished();
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
exports.default = HtmlFormatter;
|
|
29
|
-
HtmlFormatter.documentation = 'Outputs HTML report';
|
|
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 _1 = __importDefault(require("."));
|
|
7
|
+
const resolve_pkg_1 = __importDefault(require("resolve-pkg"));
|
|
8
|
+
const html_formatter_1 = __importDefault(require("@cucumber/html-formatter"));
|
|
9
|
+
const stream_1 = require("stream");
|
|
10
|
+
const util_1 = require("util");
|
|
11
|
+
class HtmlFormatter extends _1.default {
|
|
12
|
+
constructor(options) {
|
|
13
|
+
super(options);
|
|
14
|
+
this._htmlStream = new html_formatter_1.default((0, resolve_pkg_1.default)('@cucumber/html-formatter', { cwd: __dirname }) +
|
|
15
|
+
'/dist/main.css', (0, resolve_pkg_1.default)('@cucumber/html-formatter', { cwd: __dirname }) +
|
|
16
|
+
'/dist/main.js');
|
|
17
|
+
options.eventBroadcaster.on('envelope', (envelope) => {
|
|
18
|
+
this._htmlStream.write(envelope);
|
|
19
|
+
});
|
|
20
|
+
this._htmlStream.on('data', (chunk) => this.log(chunk));
|
|
21
|
+
}
|
|
22
|
+
async finished() {
|
|
23
|
+
this._htmlStream.end();
|
|
24
|
+
await (0, util_1.promisify)(stream_1.finished)(this._htmlStream);
|
|
25
|
+
await super.finished();
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
exports.default = HtmlFormatter;
|
|
29
|
+
HtmlFormatter.documentation = 'Outputs HTML report';
|
|
30
30
|
//# sourceMappingURL=html_formatter.js.map
|
package/lib/formatter/index.d.ts
CHANGED
|
@@ -1,53 +1,53 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
/// <reference types="node" />
|
|
3
|
-
import { IColorFns } from './get_color_fns';
|
|
4
|
-
import { EventDataCollector } from './helpers';
|
|
5
|
-
import StepDefinitionSnippetBuilder from './step_definition_snippet_builder';
|
|
6
|
-
import { Writable } from 'stream';
|
|
7
|
-
import { ISupportCodeLibrary } from '../support_code_library_builder/types';
|
|
8
|
-
import { EventEmitter } from 'events';
|
|
9
|
-
import { SnippetInterface } from './step_definition_snippet_builder/snippet_syntax';
|
|
10
|
-
export interface FormatRerunOptions {
|
|
11
|
-
separator?: string;
|
|
12
|
-
}
|
|
13
|
-
export interface FormatOptions {
|
|
14
|
-
colorsEnabled?: boolean;
|
|
15
|
-
rerun?: FormatRerunOptions;
|
|
16
|
-
snippetInterface?: SnippetInterface;
|
|
17
|
-
snippetSyntax?: string;
|
|
18
|
-
printAttachments?: boolean;
|
|
19
|
-
[customKey: string]: any;
|
|
20
|
-
}
|
|
21
|
-
export interface IPublishConfig {
|
|
22
|
-
url: string;
|
|
23
|
-
token: string;
|
|
24
|
-
}
|
|
25
|
-
export type IFormatterStream = Writable;
|
|
26
|
-
export type IFormatterLogFn = (buffer: string | Uint8Array) => void;
|
|
27
|
-
export type IFormatterCleanupFn = () => Promise<any>;
|
|
28
|
-
export interface IFormatterOptions {
|
|
29
|
-
colorFns: IColorFns;
|
|
30
|
-
cwd: string;
|
|
31
|
-
eventBroadcaster: EventEmitter;
|
|
32
|
-
eventDataCollector: EventDataCollector;
|
|
33
|
-
log: IFormatterLogFn;
|
|
34
|
-
parsedArgvOptions: FormatOptions;
|
|
35
|
-
snippetBuilder: StepDefinitionSnippetBuilder;
|
|
36
|
-
stream: Writable;
|
|
37
|
-
cleanup: IFormatterCleanupFn;
|
|
38
|
-
supportCodeLibrary: ISupportCodeLibrary;
|
|
39
|
-
}
|
|
40
|
-
export default class Formatter {
|
|
41
|
-
protected colorFns: IColorFns;
|
|
42
|
-
protected cwd: string;
|
|
43
|
-
protected eventDataCollector: EventDataCollector;
|
|
44
|
-
protected log: IFormatterLogFn;
|
|
45
|
-
protected snippetBuilder: StepDefinitionSnippetBuilder;
|
|
46
|
-
protected stream: Writable;
|
|
47
|
-
protected supportCodeLibrary: ISupportCodeLibrary;
|
|
48
|
-
protected printAttachments: boolean;
|
|
49
|
-
private readonly cleanup;
|
|
50
|
-
static readonly documentation: string;
|
|
51
|
-
constructor(options: IFormatterOptions);
|
|
52
|
-
finished(): Promise<void>;
|
|
53
|
-
}
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
/// <reference types="node" />
|
|
3
|
+
import { IColorFns } from './get_color_fns';
|
|
4
|
+
import { EventDataCollector } from './helpers';
|
|
5
|
+
import StepDefinitionSnippetBuilder from './step_definition_snippet_builder';
|
|
6
|
+
import { Writable } from 'stream';
|
|
7
|
+
import { ISupportCodeLibrary } from '../support_code_library_builder/types';
|
|
8
|
+
import { EventEmitter } from 'events';
|
|
9
|
+
import { SnippetInterface } from './step_definition_snippet_builder/snippet_syntax';
|
|
10
|
+
export interface FormatRerunOptions {
|
|
11
|
+
separator?: string;
|
|
12
|
+
}
|
|
13
|
+
export interface FormatOptions {
|
|
14
|
+
colorsEnabled?: boolean;
|
|
15
|
+
rerun?: FormatRerunOptions;
|
|
16
|
+
snippetInterface?: SnippetInterface;
|
|
17
|
+
snippetSyntax?: string;
|
|
18
|
+
printAttachments?: boolean;
|
|
19
|
+
[customKey: string]: any;
|
|
20
|
+
}
|
|
21
|
+
export interface IPublishConfig {
|
|
22
|
+
url: string;
|
|
23
|
+
token: string;
|
|
24
|
+
}
|
|
25
|
+
export type IFormatterStream = Writable;
|
|
26
|
+
export type IFormatterLogFn = (buffer: string | Uint8Array) => void;
|
|
27
|
+
export type IFormatterCleanupFn = () => Promise<any>;
|
|
28
|
+
export interface IFormatterOptions {
|
|
29
|
+
colorFns: IColorFns;
|
|
30
|
+
cwd: string;
|
|
31
|
+
eventBroadcaster: EventEmitter;
|
|
32
|
+
eventDataCollector: EventDataCollector;
|
|
33
|
+
log: IFormatterLogFn;
|
|
34
|
+
parsedArgvOptions: FormatOptions;
|
|
35
|
+
snippetBuilder: StepDefinitionSnippetBuilder;
|
|
36
|
+
stream: Writable;
|
|
37
|
+
cleanup: IFormatterCleanupFn;
|
|
38
|
+
supportCodeLibrary: ISupportCodeLibrary;
|
|
39
|
+
}
|
|
40
|
+
export default class Formatter {
|
|
41
|
+
protected colorFns: IColorFns;
|
|
42
|
+
protected cwd: string;
|
|
43
|
+
protected eventDataCollector: EventDataCollector;
|
|
44
|
+
protected log: IFormatterLogFn;
|
|
45
|
+
protected snippetBuilder: StepDefinitionSnippetBuilder;
|
|
46
|
+
protected stream: Writable;
|
|
47
|
+
protected supportCodeLibrary: ISupportCodeLibrary;
|
|
48
|
+
protected printAttachments: boolean;
|
|
49
|
+
private readonly cleanup;
|
|
50
|
+
static readonly documentation: string;
|
|
51
|
+
constructor(options: IFormatterOptions);
|
|
52
|
+
finished(): Promise<void>;
|
|
53
|
+
}
|
package/lib/formatter/index.js
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const value_checker_1 = require("../value_checker");
|
|
4
|
-
class Formatter {
|
|
5
|
-
constructor(options) {
|
|
6
|
-
this.colorFns = options.colorFns;
|
|
7
|
-
this.cwd = options.cwd;
|
|
8
|
-
this.eventDataCollector = options.eventDataCollector;
|
|
9
|
-
this.log = options.log;
|
|
10
|
-
this.snippetBuilder = options.snippetBuilder;
|
|
11
|
-
this.stream = options.stream;
|
|
12
|
-
this.supportCodeLibrary = options.supportCodeLibrary;
|
|
13
|
-
this.cleanup = options.cleanup;
|
|
14
|
-
this.printAttachments = (0, value_checker_1.valueOrDefault)(options.parsedArgvOptions.printAttachments, true);
|
|
15
|
-
}
|
|
16
|
-
async finished() {
|
|
17
|
-
await this.cleanup();
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
exports.default = Formatter;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const value_checker_1 = require("../value_checker");
|
|
4
|
+
class Formatter {
|
|
5
|
+
constructor(options) {
|
|
6
|
+
this.colorFns = options.colorFns;
|
|
7
|
+
this.cwd = options.cwd;
|
|
8
|
+
this.eventDataCollector = options.eventDataCollector;
|
|
9
|
+
this.log = options.log;
|
|
10
|
+
this.snippetBuilder = options.snippetBuilder;
|
|
11
|
+
this.stream = options.stream;
|
|
12
|
+
this.supportCodeLibrary = options.supportCodeLibrary;
|
|
13
|
+
this.cleanup = options.cleanup;
|
|
14
|
+
this.printAttachments = (0, value_checker_1.valueOrDefault)(options.parsedArgvOptions.printAttachments, true);
|
|
15
|
+
}
|
|
16
|
+
async finished() {
|
|
17
|
+
await this.cleanup();
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.default = Formatter;
|
|
21
21
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,78 +1,78 @@
|
|
|
1
|
-
import Formatter, { IFormatterOptions } from './';
|
|
2
|
-
import * as messages from '@cucumber/messages';
|
|
3
|
-
export interface IJsonFeature {
|
|
4
|
-
description: string;
|
|
5
|
-
elements: IJsonScenario[];
|
|
6
|
-
id: string;
|
|
7
|
-
keyword: string;
|
|
8
|
-
line: number;
|
|
9
|
-
name: string;
|
|
10
|
-
tags: IJsonTag[];
|
|
11
|
-
uri: string;
|
|
12
|
-
}
|
|
13
|
-
export interface IJsonScenario {
|
|
14
|
-
description: string;
|
|
15
|
-
id: string;
|
|
16
|
-
keyword: string;
|
|
17
|
-
line: number;
|
|
18
|
-
name: string;
|
|
19
|
-
steps: IJsonStep[];
|
|
20
|
-
tags: IJsonTag[];
|
|
21
|
-
type: string;
|
|
22
|
-
}
|
|
23
|
-
export interface IJsonStep {
|
|
24
|
-
arguments?: any;
|
|
25
|
-
embeddings?: any;
|
|
26
|
-
hidden?: boolean;
|
|
27
|
-
keyword?: string;
|
|
28
|
-
line?: number;
|
|
29
|
-
match?: any;
|
|
30
|
-
name?: string;
|
|
31
|
-
result?: any;
|
|
32
|
-
}
|
|
33
|
-
export interface IJsonTag {
|
|
34
|
-
name: string;
|
|
35
|
-
line: number;
|
|
36
|
-
}
|
|
37
|
-
interface IBuildJsonFeatureOptions {
|
|
38
|
-
feature: messages.Feature;
|
|
39
|
-
elements: IJsonScenario[];
|
|
40
|
-
uri: string;
|
|
41
|
-
}
|
|
42
|
-
interface IBuildJsonScenarioOptions {
|
|
43
|
-
feature: messages.Feature;
|
|
44
|
-
gherkinScenarioMap: Record<string, messages.Scenario>;
|
|
45
|
-
gherkinExampleRuleMap: Record<string, messages.Rule>;
|
|
46
|
-
gherkinScenarioLocationMap: Record<string, messages.Location>;
|
|
47
|
-
pickle: messages.Pickle;
|
|
48
|
-
steps: IJsonStep[];
|
|
49
|
-
}
|
|
50
|
-
interface IBuildJsonStepOptions {
|
|
51
|
-
isBeforeHook: boolean;
|
|
52
|
-
gherkinStepMap: Record<string, messages.Step>;
|
|
53
|
-
pickleStepMap: Record<string, messages.PickleStep>;
|
|
54
|
-
testStep: messages.TestStep;
|
|
55
|
-
testStepAttachments: messages.Attachment[];
|
|
56
|
-
testStepResult: messages.TestStepResult;
|
|
57
|
-
}
|
|
58
|
-
export default class JsonFormatter extends Formatter {
|
|
59
|
-
static readonly documentation: string;
|
|
60
|
-
constructor(options: IFormatterOptions);
|
|
61
|
-
convertNameToId(obj: messages.Feature | messages.Pickle): string;
|
|
62
|
-
formatDataTable(dataTable: messages.PickleTable): any;
|
|
63
|
-
formatDocString(docString: messages.PickleDocString, gherkinStep: messages.Step): any;
|
|
64
|
-
formatStepArgument(stepArgument: messages.PickleStepArgument, gherkinStep: messages.Step): any;
|
|
65
|
-
onTestRunFinished(): void;
|
|
66
|
-
getFeatureData({ feature, elements, uri, }: IBuildJsonFeatureOptions): IJsonFeature;
|
|
67
|
-
getScenarioData({ feature, gherkinScenarioLocationMap, gherkinExampleRuleMap, gherkinScenarioMap, pickle, steps, }: IBuildJsonScenarioOptions): IJsonScenario;
|
|
68
|
-
private formatScenarioId;
|
|
69
|
-
getStepData({ isBeforeHook, gherkinStepMap, pickleStepMap, testStep, testStepAttachments, testStepResult, }: IBuildJsonStepOptions): IJsonStep;
|
|
70
|
-
getFeatureTags(feature: messages.Feature): IJsonTag[];
|
|
71
|
-
getScenarioTags({ feature, pickle, gherkinScenarioMap, }: {
|
|
72
|
-
feature: messages.Feature;
|
|
73
|
-
pickle: messages.Pickle;
|
|
74
|
-
gherkinScenarioMap: Record<string, messages.Scenario>;
|
|
75
|
-
}): IJsonTag[];
|
|
76
|
-
private getScenarioTag;
|
|
77
|
-
}
|
|
78
|
-
export {};
|
|
1
|
+
import Formatter, { IFormatterOptions } from './';
|
|
2
|
+
import * as messages from '@cucumber/messages';
|
|
3
|
+
export interface IJsonFeature {
|
|
4
|
+
description: string;
|
|
5
|
+
elements: IJsonScenario[];
|
|
6
|
+
id: string;
|
|
7
|
+
keyword: string;
|
|
8
|
+
line: number;
|
|
9
|
+
name: string;
|
|
10
|
+
tags: IJsonTag[];
|
|
11
|
+
uri: string;
|
|
12
|
+
}
|
|
13
|
+
export interface IJsonScenario {
|
|
14
|
+
description: string;
|
|
15
|
+
id: string;
|
|
16
|
+
keyword: string;
|
|
17
|
+
line: number;
|
|
18
|
+
name: string;
|
|
19
|
+
steps: IJsonStep[];
|
|
20
|
+
tags: IJsonTag[];
|
|
21
|
+
type: string;
|
|
22
|
+
}
|
|
23
|
+
export interface IJsonStep {
|
|
24
|
+
arguments?: any;
|
|
25
|
+
embeddings?: any;
|
|
26
|
+
hidden?: boolean;
|
|
27
|
+
keyword?: string;
|
|
28
|
+
line?: number;
|
|
29
|
+
match?: any;
|
|
30
|
+
name?: string;
|
|
31
|
+
result?: any;
|
|
32
|
+
}
|
|
33
|
+
export interface IJsonTag {
|
|
34
|
+
name: string;
|
|
35
|
+
line: number;
|
|
36
|
+
}
|
|
37
|
+
interface IBuildJsonFeatureOptions {
|
|
38
|
+
feature: messages.Feature;
|
|
39
|
+
elements: IJsonScenario[];
|
|
40
|
+
uri: string;
|
|
41
|
+
}
|
|
42
|
+
interface IBuildJsonScenarioOptions {
|
|
43
|
+
feature: messages.Feature;
|
|
44
|
+
gherkinScenarioMap: Record<string, messages.Scenario>;
|
|
45
|
+
gherkinExampleRuleMap: Record<string, messages.Rule>;
|
|
46
|
+
gherkinScenarioLocationMap: Record<string, messages.Location>;
|
|
47
|
+
pickle: messages.Pickle;
|
|
48
|
+
steps: IJsonStep[];
|
|
49
|
+
}
|
|
50
|
+
interface IBuildJsonStepOptions {
|
|
51
|
+
isBeforeHook: boolean;
|
|
52
|
+
gherkinStepMap: Record<string, messages.Step>;
|
|
53
|
+
pickleStepMap: Record<string, messages.PickleStep>;
|
|
54
|
+
testStep: messages.TestStep;
|
|
55
|
+
testStepAttachments: messages.Attachment[];
|
|
56
|
+
testStepResult: messages.TestStepResult;
|
|
57
|
+
}
|
|
58
|
+
export default class JsonFormatter extends Formatter {
|
|
59
|
+
static readonly documentation: string;
|
|
60
|
+
constructor(options: IFormatterOptions);
|
|
61
|
+
convertNameToId(obj: messages.Feature | messages.Pickle): string;
|
|
62
|
+
formatDataTable(dataTable: messages.PickleTable): any;
|
|
63
|
+
formatDocString(docString: messages.PickleDocString, gherkinStep: messages.Step): any;
|
|
64
|
+
formatStepArgument(stepArgument: messages.PickleStepArgument, gherkinStep: messages.Step): any;
|
|
65
|
+
onTestRunFinished(): void;
|
|
66
|
+
getFeatureData({ feature, elements, uri, }: IBuildJsonFeatureOptions): IJsonFeature;
|
|
67
|
+
getScenarioData({ feature, gherkinScenarioLocationMap, gherkinExampleRuleMap, gherkinScenarioMap, pickle, steps, }: IBuildJsonScenarioOptions): IJsonScenario;
|
|
68
|
+
private formatScenarioId;
|
|
69
|
+
getStepData({ isBeforeHook, gherkinStepMap, pickleStepMap, testStep, testStepAttachments, testStepResult, }: IBuildJsonStepOptions): IJsonStep;
|
|
70
|
+
getFeatureTags(feature: messages.Feature): IJsonTag[];
|
|
71
|
+
getScenarioTags({ feature, pickle, gherkinScenarioMap, }: {
|
|
72
|
+
feature: messages.Feature;
|
|
73
|
+
pickle: messages.Pickle;
|
|
74
|
+
gherkinScenarioMap: Record<string, messages.Scenario>;
|
|
75
|
+
}): IJsonTag[];
|
|
76
|
+
private getScenarioTag;
|
|
77
|
+
}
|
|
78
|
+
export {};
|