这可能听起来重复,但事实并非如此。
我知道我可以在配置文件中使用以下配置,并启动chrome驱动程序的多个实例,这些实例将并行运行共享步骤定义的功能。
capabilities: {
'browserName': 'chrome',
'shardTestFiles': true,
'maxInstances': 0
},
Q1。但我的问题是为什么chromedriver在场景失败时不会退出?(只有当我使用maxInstance的值> 0时才会发生这种情况)。 chromedriver出口有exitcode-3和exitcode-1。
Q2。有人能够解决报告问题吗?所有功能完成后如何生成报告?
任何形式的帮助都会受到赞赏吗?
谢谢
答案 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
,它将导致问题,你的代码将永远不会完全退出。另外我不认为你的代码会并行运行
我建议的是
检查您的量角器版本并更新到最新的
将配置文件更改为 - 'maxInstances': 3
//大于1的任何内容.1是默认值