Ama*_*pta 22 javascript testing end-to-end jasmine protractor
如果测量用例在量角器中失败,是否有办法退出测试套件并停止执行进一步的测试用例?
ale*_*cxe 17
在jasmine测试框架的情况下,您不是第一个询问它的人.
第一次失败后有关于退出的相关公开讨论/问题,--fail-fast选项:
长话短说,这是一个开放的问题,有一天jasmine会内置功能.目前,使用第三方jasmine-bail-fast模块.
除此之外,还有一个方便的realtimeFailure茉莉花设置.如果你把它设置为true它不会失败整个测试运行,但它会实时显示错误 - 发生后立即 - 这可能涵盖你的用例.设置为jasmineNodeOpts:
exports.config = {
seleniumAddress: 'http://127.0.0.1:4444/wd/hub',
...
jasmineNodeOpts: {
realtimeFailure: true
}
}
Run Code Online (Sandbox Code Playgroud)
jasmine-bail-fast在我的情况下不起作用.不确定是不是因为与我的其他报告插件有些冲突.
如果有人遇到同样的问题.您可以尝试量角器快速失败
exports.config = {
plugins: [{
package: 'protractor-fail-fast'
}],
onPrepare: function() {
jasmine.getEnv().addReporter(failFast.init());
},
afterLaunch: function() {
failFast.clean();
}
}
Run Code Online (Sandbox Code Playgroud)
对我来说工作得很好.
小智 9
这是我使用Jasmine 2和Protractor跳过首次失败测试的解决方案.希望能帮助到你.
exports.config = {
onPrepare: function () {
//skip tests after first fail
var specs = [];
var orgSpecFilter = jasmine.getEnv().specFilter;
jasmine.getEnv().specFilter = function (spec) {
specs.push(spec);
return orgSpecFilter(spec);
};
jasmine.getEnv().addReporter(new function () {
this.specDone = function (result) {
if (result.failedExpectations.length > 0) {
specs.forEach(function (spec) {
spec.disable()
});
}
};
});
}
};
Run Code Online (Sandbox Code Playgroud)