UNPKG

1.4 kBJavaScriptView Raw
1// Link: https://nightwatch-api.netlify.app/cucumber/
2
3const fs = require('fs');
4const path = require('path');
5const { setDefaultTimeout, After, AfterAll, BeforeAll } = require('@cucumber/cucumber');
6const { createSession, closeSession, startWebDriver, stopWebDriver, getNewScreenshots } = require('nightwatch-api');
7const reporter = require('cucumber-html-reporter');
8
9setDefaultTimeout(60000);
10
11const reportDir = path.resolve(process.cwd(), '.reports');
12if (!fs.existsSync(reportDir)) {
13 fs.mkdirSync(reportDir);
14}
15
16const reportCucumberDir = path.resolve(reportDir, 'cucumber');
17if (!fs.existsSync(reportCucumberDir)) {
18 fs.mkdirSync(reportCucumberDir);
19}
20
21BeforeAll(async () => {
22 await startWebDriver({ env: process.env.NIGHTWATCH_ENV, headless: process.argv.indexOf('--headless') >= 0 });
23 await createSession();
24});
25
26AfterAll(async () => {
27 await closeSession();
28 await stopWebDriver();
29
30 setTimeout(() => {
31 reporter.generate({
32 theme: 'bootstrap',
33 jsonFile: path.resolve(reportDir, 'cucumber/report.json'),
34 output: path.resolve(reportDir, 'cucumber/report.html'),
35 reportSuiteAsScenarios: true,
36 launchReport: false,
37 metadata: {
38 'App Version': '0.0.0',
39 'Test Environment': 'DEMO',
40 },
41 });
42 }, 1000);
43});
44
45After(function () {
46 getNewScreenshots().forEach((file) => this.attach(fs.readFileSync(file), 'image/png'));
47});