While trying to figure out how to make certain jasmine expect statements dependent on a previous expect statement I discovered that previous to Jasmine 2.3.0, there was not a way. (see Stop jasmine test after first expect fails) However, Jasmine 2.3.0 added an option stopSpecOnExpectationFailure
that when set to true will stop a test on the first failure.
Excited by this prospect, I modified my conf.js to include the option:
/*
* conf.js
*/
exports.config = {
framework: 'jasmine',
specs: ['search-spec.js'],
useAllAngular2AppRoots: true,
jasmineNodeOpts: {
stopSpecOnExpectationFailure: true
}
};
But this did not work for me.
In my test, I have:
/**
* Test option from select element is selected
*/
function verifyOptionSelected(option) {
var myEl = $('select[value="' + option + '"]';
expect(myEl.isPresent()).toBe(true, 'Option, ' + option + ', is not a value in the dropdown list. (It might be the text.)');
expect(myEl.isSelected()).toBe(true, 'Option, ' + option + ', is not selected as expected.');
}
In the code above, both expect statements will be attempted, but I don't need the second to be attempted if the first fails.
Are there any of you who have figured this out with jasmine?
(Yes, I know about jasmine-bail-fast and protractor-fail-fast. However, in my opinion, using the built-in feature is a better solution.)
From what I see in the protractor
and jasmine-npm
(the jasmine runner that protractor
uses) source code, it is not as simple as adding the stopSpecOnExpectationFailure
or stopOnFailure
jasmine node option to the configuration. There has to be changes applied to protractor
to support the new stopSpecOnExpectationFailure
jasmine node option. Please create an issue/feature request in Protractor
issue tracker.
I've also tried to call the throwOnExpectationFailure
function, set the stopSpecOnExpectationFailure
value throw jasmine.getEnv()
in onPrepare()
but none of that worked. Perhaps, I am missing something and there is a way to enable the setting.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With