我们正在使用量角器 - 黄瓜 - 框架,并且对CucumberJs v4.0进行了最新更新,如果E2E功能在任何步骤失败,则json报告不会生成 - json文件保持为空。
仅当cucumberOpts
参数ignoreUncaughtExceptions
设置为false
时才会发生这种情况。问题是如何在cucumberOpts: ignoreUncaughtExceptions: false
时生成步骤失败的json报告。
After
,AfterAll
挂钩无效
答案 0 :(得分:0)
根据protractor-cucumber-framework readme,使用ignoreUncaughtExceptions: true
是处理量角器未捕获异常的方法。
由于mentionned by darrinholst黄瓜会处理此错误here:
process.on('uncaughtException', (exc: (Error|string)) => {
let e = (exc instanceof Error) ? exc : new Error(exc);
if (config.ignoreUncaughtExceptions) {
// This can be a sign of a bug in the test framework, that it may
// not be handling WebDriver errors properly. However, we don't
// want these errors to prevent running the tests.
logger.warn('Ignoring uncaught error ' + exc);
return;
}...
另一种解决方案是返回承诺,让黄瓜处理错误,不再需要ignoreUncaughtExceptions: true
。
此代码:
Then(/^I can say Hello World$/, function(done: any) {
this.page
.sayHelloWorld()
.then(done);
});
会这样写:
Then(/^I can say Hello World$/, function() {
return this.page.sayHelloWorld();
});