使用 Protractor 生成测试 运行 的 JSON 对象?

Generating JSON object of the tests ran using Protractor?

我对使用 ProtractorMochaYadda 进行端到端测试比较陌生(为了与 Mocha 集成,所以我可以使用 Gherkin 和步骤定义)。

我见过一个叫做 Mochawesome 的插件,它生成一个可以离线查看的 HTML 报告,以及这个 JSON 测试结果对象,所有这些都包含在 'reports' 文件夹中。

我认为是 Mochawesome 生成了这些 JSON 对象,因为 HTML 页面似乎有相应的标签等。有什么方法可以生成 JSON 对象没有 HTML 记者的测试 运行?我的想法是创建我自己的 'dashboard' 类型,其中包含基于 JSON 信息的测试信息。

我不确定直接在量角器中生成 JSON 对象。但我知道的是,我们可以在 XML 中生成结果,然后通过编写一些自定义代码将 xml 转换为 json。

生成XML报告的代码如下:

     framework: "jasmine2",
     onPrepare: function() {
        var jasmineReporters = require('jasmine-reporters'),
        jasmine.getEnv().addReporter(new jasmineReporters.JUnitXmlReporter({
             savePath: '../result/',
             filePrefix: ‘report’,
             consolidateAll: true
            });
         );
     },

是的,您可以使用 protractor.You 创建 specs/tests 的 JSON report,只需将 resultJsonOutputFile: './Report.json' 放入配置文件即可。

您的配置文件应该看起来像这样:

exports.config = {

directConnect: true, 
capabilities: {
    'browserName': 'chrome'
},
baseUrl: 'http://juliemr.github.io/protractor-demo/', 
framework: 'jasmine2', 
specs: ['*spec.js '], 
allScriptsTimeout: 180000, 
getPageTimeout: 180000, 
jasmineNodeOpts: {
    defaultTimeoutInterval: 180000
},
 resultJsonOutputFile: './Report.json', // It would create report.json file in your current folder
 onPrepare: function () {

    browser.driver.manage().window().maximize();
    browser.ignoreSynchronization = true;
}
};

你可以消费这个 json report 并按照你的方式使用它!