【问题标题】:Need Step Information in report.json for Protractor-cucumber tests量角器黄瓜测试需要 report.json 中的步骤信息
【发布时间】:2016-12-17 08:08:54
【问题描述】:

我正在使用“protractor-cucumber-framework”将 Cucumber 与 Protractor 一起用于自动化(使用 CHAI 作为断言库)。

我正在使用 resultJsonOutputFile: './report.json' 来生成 JSON 日志报告。我在日志文件中看不到步骤信息,它只显示每个块的传递属性。下面附上生成的示例功能文件和 JSON 报告。

sample json file

sample feature file

我想在功能文件中包含“然后”之后的文本,例如。这可能吗?

【问题讨论】:

    标签: cucumber protractor chai cucumberjs


    【解决方案1】:

    resultJsonOutputFile 将生成归因于量角器的 json 文件,并将包含基本规格信息。由于您使用 Cucumber 作为量角器的测试框架,因此您必须生成 cucumber 生成的Cucumber-Report.json。它将包含您所有的步骤定义详细信息!为了实现这一点,您可以在 hooks.js 文件中添加以下代码:

    var Cucumber = require('cucumber'); //npm install -g cucumber
    var jsonReporter = function () {
    "use strict";
    var outputDir = './Reports/';
    var JsonFormatter = Cucumber.Listener.JsonFormatter();
    JsonFormatter.log = function (string) {
        if (!fs.existsSync(outputDir)) {
            fs.mkdirSync(outputDir);
        }
    
    var targetJson = outputDir + 'cucumber_report.json';
        fs.writeFile(targetJson, string, function (err) {
            if (err) {
                console.log('Failed to save cucumber test results to json file.');
                console.log(err);
            } 
        });
    };
    this.registerListener(JsonFormatter);
    
    module.exports = jsonReporter;
    

    这将创建一个Reports 文件夹,您将在其中看到cucumber_report.json 文件

    【讨论】:

    • 感谢@igniteram1 的回答。由于我是黄瓜新手,因此无法将此 hooks.js 连接到我的 stepdef 文件。我在一个文件夹中有功能文件、hooks.js、stepdefinition 文件。 Sibiling 到这个文件夹我有 conf.js。你能告诉我我应该在哪里需要这个将创建 json 文件的钩子文件。
    • 您必须在您的conf.jscucumberOpts 中要求它们以及您的步骤定义!
    • 是的,我做到了,我能够按预期生成 json 文件。谢谢
    • 很高兴它成功了!如果它解决了您的问题,请接受答案,因为它会帮助其他有类似问题的人:)
    • @igniteram,我们能否在 conf.js 中将这个 hooks.js 代码放在 onPrepare/Oncomplete 等任何块中,而不是放在单独的文件中并要求在 require 块中?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多