1
閱讀「開」的未定義的屬性我試圖生成使用黃瓜HTML的記者不能在新JsonFormatter
得到錯誤的HTML報告。我不確定這個問題是否屬於這個問題! 如果是這樣,任何人都可以請我來解決這個問題。
另外請讓我知道,如果你有更好的解決方案,使用打字機生成與黃瓜量角器報告。 (請考慮下面的版本太)
量角器版本:5.1.2
黃瓜版本:3.0.0
ScenarioHook.ts
import {defineSupportCode} from "cucumber";
import {CucumberReportExtension} from
"../reporting/CucumberReportExtension";
defineSupportCode(({AfterAll}) => {
AfterAll(async() => {
new CucumberReportExtension().myJsonFormatter;
});
});
CucumberReport Extension.ts
import * as fs from 'fs';
import { mkdirp } from 'mkdirp';
import * as report from 'cucumber-html-reporter';
let Cucumber = require('cucumber');
export class CucumberReportExtension {
private jsonDir = process.cwd() + "/reports/json";
private htmlDir = process.cwd() + "/reports/html";
private jsonFile = this.jsonDir + "/cucumber_report.json";
private cucumberReporterOptions = {
theme: "bootstrap",
jsonFile: this.jsonFile,
output: this.htmlDir + "/cucumber_reporter.html",
reportSuiteAsScenarios: true,
metadata: {
"App Version":"0.0.1",
"Test Environment": "TestingMicroSheet",
"Browser": "Chrome 59.0.945",
"Platform": "Windows 10",
"Parallel": "Scenarios",
"Executed": "Local"
}
};
private CreateReportFile(dirName, fileName, fileContent) {
//Check if the directory exist
if (!fs.existsSync(dirName))
mkdirp.sync(dirName);
try {
fs.writeFileSync(fileName, fileContent);
}
catch (message) {
console.log("Failed to create File/Directory :" + message);
}
}
private GenerateCucumberReport(cucumberReportOption){
report.generate(cucumberReportOption);
}
myJsonFormatter = new Cucumber.JsonFormatter({
log: jLog => {
this.CreateReportFile(this.jsonDir, this.jsonFile, jLog);
this.GenerateCucumberReport(this.cucumberReporterOptions);
}
});
}
export let JsonFormatter = new CucumberReportExtension().myJsonFormatter;
config.ts
import { Config } from 'protractor';
export let config: Config = {
seleniumAddress: 'http://localhost:4444/wd/hub',
framework: 'custom',
frameworkPath: require.resolve('protractor-cucumber-framework'),
specs: ["../features/*.feature"],
baseUrl: "http://localhost:4200/",
cucumberOpts: {
compiler: "ts:ts-node/register",
strict: true,
format: ['json:../reporting/results.json'],
require: ['../steps/*.js', '../hooks/*.js'],
tags: '@smoke'
}
}
的package.json
{
"name": "protractor-cucumber-sample",
"version": "0.0.0",
"private": true,
"scripts": {
"start": "node ./bin/www"
},
"dependencies": {
"@types/jasmine": "^2.5.53",
"body-parser": "~1.17.1",
"cookie-parser": "~1.4.3",
"debug": "~2.6.3",
"express": "~4.15.2",
"jade": "~1.11.0",
"morgan": "~1.8.1",
"serve-favicon": "~2.4.2"
},
"devDependencies": {
"@types/chai": "^4.0.3",
"@types/cucumber": "^2.0.3",
"@types/mkdirp": "^0.5.0",
"chai": "^4.1.1",
"chai-as-promised": "^7.1.1",
"cucumber": "^3.0.0",
"cucumber-html-reporter": "^2.0.3",
"jasmine": "^2.7.0",
"jasminewd2": "^2.1.0",
"protractor-cucumber-framework": "^4.0.2",
"ts-node": "^3.3.0",
"typescript": "^2.4.2"
}
}
請讓我知道我f所需的其他信息可幫助您解決此問題。
如果這不是合適的論壇,請您回復我以正確的論壇詳細信息發佈此問題。
在此先感謝。
這是一個打字稿錯誤,我想你的項目中沒有安裝節點類型!你還使用哪個版本的節點? –
我正在使用節點版本** v6.11.2 **。在上面的錯誤信息'\ node_modules \ cucumber \ src \ formatter \ json_formatter.js:21:5'中指的是'cucumber \ src \'文件夾。我在本地和全球安裝了黃瓜。我找不到'src'文件夾。 – Vinni
相反,我發現'options.eventBroadcaster。on('test-run-finished',_this.onTestRunFinished.bind(_this));'在'cucumber \ lib \ formatter \ json_formatter.json'中。嘗試在** CucumberReportExtension.ts **中爲** eventBroadcaster **傳遞[test-step-finished](https://github.com/cucumber/cucumber/pull/172)。沒有運氣。獲取相同的錯誤 – Vinni