在第一次预期失败后停止茉莉花测试

时间:2014-03-01 19:25:57

标签: jasmine

我熟悉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的测试,当只有第一个错误时,显示所有堆栈跟踪似乎是浪费。

5 个答案:

答案 0 :(得分:10)

@ Gregg的答案对于当时最新版本的Jasmine(v2.0.0)是正确的。

但是,从那时起,added中的这项新功能为v2.3.0

  

允许用户在期望失败时停止规范执行(修复#577

通过将throwFailures=true添加到跑步者页面的查询字符串来激活它,例如:

http://localhost:8000/?throwFailures=true

答案 1 :(得分:7)

Jasmine不支持在单一规范中提前失败。我们的想法是为您提供所有失败,以帮助您找出规范中的错误。

答案 2 :(得分:1)

Jasmine 有停止失败功能,你可以在这里查看: https://plnkr.co/plunk/Ko5m6MQz9VUPMMrC

茉莉花开头带有 oneFailurePerSpec 属性。

enter image description here enter image description here enter image description here

答案 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