Reputation: 8431
I'm familiar with python unittest tests where if an assertion fails, that test is marked as "failed" and it moves on to other tests. Jasmine on the other hand will continue through all expects even if the one of them fails. How can I make Jasmine stop processing a test after the first expectation fails?
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");
});
Am I thinking about it wrong? I have some tests with lots of expect
's and it seems like a waste to show all the stack traces when only the first is wrong really.
Upvotes: 21
Views: 19898
Reputation: 380
I'm using Jasmine in Appium (a tool to test React Native apps).
I fixed the issue by adding stopSpecOnExpectationFailure=true
to Jasmine configs
jasmine v3.8.0 & jasmine-core v3.8.0
Upvotes: 0
Reputation: 16632
Jasmine has stop on failure feature and you can check it here: https://plnkr.co/plunk/Ko5m6MQz9VUPMMrC
This starts jasmine with oneFailurePerSpec
property.
Upvotes: 1
Reputation: 1052
According to the comments of https://github.com/jasmine/jasmine/issues/414 I figured out that 2 solutions exists for this: https://github.com/radialanalytics/protractor-jasmine2-fail-whale https://github.com/Updater/jasmine-fail-fast
I just started to use the protractor-jasmine2-fail-whale because it seems to have more features. Although to take screenshots in case of test failures I currently use protractor-jasmine2-html-reporter.
Upvotes: 0
Reputation: 8592
@Gregg's answer was correct for the latest version of Jasmine at that time (v2.0.0).
However, since then, this new feature was added in v2.3.0:
Allow user to stop a specs execution when an expectation fails (Fixes #577)
It's activated by adding throwFailures=true
to the query string of the runner page, eg:
http://localhost:8000/?throwFailures=true
Upvotes: 13
Reputation: 2638
Jasmine doesn't support failing early, in a single spec. The idea is to give you all of the failures in case that helps figure out what is really wrong in your spec.
Upvotes: 8