1 | (function (factory) {
|
2 | if (typeof module === "object" && typeof module.exports === "object") {
|
3 | var v = factory(require, exports);
|
4 | if (v !== undefined) module.exports = v;
|
5 | }
|
6 | else if (typeof define === "function" && define.amd) {
|
7 | define(["require", "exports", "@leanup/cli/lib/common-cli"], factory);
|
8 | }
|
9 | })(function (require, exports) {
|
10 | "use strict";
|
11 | Object.defineProperty(exports, "__esModule", { value: true });
|
12 | const common_cli_1 = require("@leanup/cli/lib/common-cli");
|
13 | module.exports = (CLI) => {
|
14 | const fs = require('fs');
|
15 | const path = require('path');
|
16 | CLI.addCommand('cucumber', 'E2E-Testing (https://cucumber.io/)', [
|
17 | { flags: '-e, --env <env>', description: 'test running environment' },
|
18 | { flags: '--headless', description: 'run tests in the headless mode' },
|
19 | ].concat(common_cli_1.commonOptions), (options) => {
|
20 | let reportDir = path.resolve(process.cwd(), '.reports');
|
21 | if (!fs.existsSync(reportDir)) {
|
22 | fs.mkdirSync(reportDir);
|
23 | }
|
24 | reportDir = path.resolve(reportDir, 'cucumber');
|
25 | if (!fs.existsSync(reportDir)) {
|
26 | fs.mkdirSync(reportDir);
|
27 | }
|
28 | let spawnArgs = ['cross-env'];
|
29 | if (options.env) {
|
30 | spawnArgs.push(`NIGHTWATCH_ENV=${options.env}`);
|
31 | }
|
32 | spawnArgs = spawnArgs.concat([
|
33 | 'cucumber-js',
|
34 | 'tests/cucumber/features/**/*.feature',
|
35 | '--require',
|
36 | '@babel/register',
|
37 | '--require',
|
38 | 'cucumber.conf.js',
|
39 | '--require',
|
40 | 'tests/cucumber/step-definitions',
|
41 | '--format',
|
42 | 'node_modules/cucumber-pretty',
|
43 | '--format',
|
44 | 'json:.reports/cucumber/report.json',
|
45 | ]);
|
46 | if (options.filter) {
|
47 | spawnArgs.push(`--filter=${options.filter}`);
|
48 | }
|
49 | if (options.headless) {
|
50 | spawnArgs.push('--headless');
|
51 | }
|
52 | return spawnArgs;
|
53 | });
|
54 | };
|
55 | });
|
56 |
|
\ | No newline at end of file |