我熟悉python unittest测试,如果断言失败,那么测试会被标记为“失败”,并且会继续进行其他测试。另一方面,Jasmine将继续通过所有期望,即使其中一个失败。在第一次预期失败后,如何让Jasmine停止处理测试?
it ("shouldn't need to test other expects if the first fails", function() {
expect(array.length).toBe(1);
// don't need to check this if the first failed.
expect(array[0]).toBe("foo");
});
我在想错了吗?我有很多expect
的测试,当只有第一个错误时,显示所有堆栈跟踪似乎是浪费。
答案 0 :(得分:10)
@ Gregg的答案对于当时最新版本的Jasmine(v2.0.0)是正确的。
允许用户在期望失败时停止规范执行(修复#577)
通过将throwFailures=true
添加到跑步者页面的查询字符串来激活它,例如:
http://localhost:8000/?throwFailures=true
答案 1 :(得分:7)
Jasmine不支持在单一规范中提前失败。我们的想法是为您提供所有失败,以帮助您找出规范中的错误。
答案 2 :(得分:1)
答案 3 :(得分:0)
根据https://github.com/jasmine/jasmine/issues/414的评论,我发现存在两种解决方案: https://github.com/radialanalytics/protractor-jasmine2-fail-whale https://github.com/Updater/jasmine-fail-fast
我刚开始使用量角器-jasmine2-fail-whale,因为它似乎有更多的功能。虽然在测试失败的情况下拍摄截图,但我目前使用的是protractor-jasmine2-html-reporter。
答案 4 :(得分:0)
我在 Appium(一种测试 React Native 应用程序的工具)中使用 Jasmine。
我通过向 Jasmine 配置添加 stopSpecOnExpectationFailure=true
解决了这个问题
jasmine v3.8.0 & jasmine-core v3.8.0