与综合报告

时间:2016-10-04 21:42:03

标签: protractor cucumberjs

这可能听起来重复,但事实并非如此。

我知道我可以在配置文件中使用以下配置,并启动chrome驱动程序的多个实例,这些实例将并行运行共享步骤定义的功能。

  capabilities: {
  'browserName': 'chrome',    
  'shardTestFiles': true,
  'maxInstances': 0
  },

Q1。但我的问题是为什么chromedriver在场景失败时不会退出?(只有当我使用maxInstance的值> 0时才会发生这种情况)。 chromedriver出口有exitcode-3和exitcode-1。

Q2。有人能够解决报告问题吗?所有功能完成后如何生成报告?

任何形式的帮助都会受到赞赏吗?

谢谢

2 个答案:

答案 0 :(得分:1)

为了在并行运行后生成整合的html报告,我在protractor.conf.js文件中使用了afterLaunch参数,并使用了https://github.com/gkushang/cucumber-html-reporter。以下是代码 -

afterLaunch: function afterLaunch () {
   var cucumberHtmlReporter = require('cucumber-html-reporter');
   var jsonReportFolder = '/path/to/all/json/reports';
   var cucumberhtmlReport = path.join(jsonReportFolder, cucumber.html');
   var options = {
        theme: 'bootstrap',
        jsonDir: jsonReportFolder,
        output: cucumberhtmlReport,
        reportSuiteAsScenarios: true,
        launchReport: true
    };

    cucumberHtmlReporter.generate(options);

}

答案 1 :(得分:0)

现有行为是正确的。请勿使用'maxInstances': 0 默认值为1,任何value>1都是正确的方法。您看到的错误是因为源代码 - taskScheduler

他们正在处理此taskScheduler个导出中的分片测试,maxinstances的逻辑如下

this.maxInstance = capabilities.maxInstances || 1;
 /**
 * Get maximum number of concurrent tasks required/permitted.
 *
 * @return {number}
 */
 count += Math.min(queue.maxInstance, queue.specLists.length);

因此,如果你有maxInstances 0,它将导致问题,你的代码将永远不会完全退出。另外我不认为你的代码会并行运行

我建议的是

  1. 检查您的量角器版本并更新到最新的

  2. 将配置文件更改为 - 'maxInstances': 3 //大于1的任何内容.1是默认值