I can't find a way how to stop some part of it
's from run if one of them failed
I'm using mocha-as-promised
, so the code might look different from as usuall
describe("remote promises", function() { describe("browsing", function() { describe("getting page", function() { it("should navigate to test page and check title", function() { this.timeout(TIMEOUT); return browser.get("http://admc.io/wd/test-pages/guinea-pig.html").then(function() { return browser.title(); }).then(function(title) { return assert.ok(~title.indexOf("I am a page title - Sauce Labs"), "Wrong title!"); }); }) it("submit element should be clicked1", function() { this.timeout(TIMEOUT); return browser.elementById("submit").then(function(el) { return browser.clickElement(el); }).then(function() { return browser["eval"]("window.location.href"); }).then(function(location) { assert.ok(~location.indexOf("http://"), "Wrong location!"); }); }) }); describe("clicking submit", function() { it("submit element should be clicked2", function() { this.timeout(TIMEOUT); return browser.elementById("submit").then(function(el) { return browser.clickElement(el); }).then(function() { return browser["eval"]("window.location.href"); }).then(function(location) { assert.ok(~location.indexOf("http://"), "Wrong location!"); }); }); }); }); });
and i want that if should navigate to test page and check title
is failed then submit element should be clicked1
should be skipped
EDIT: seems i'm just making my tests wrong, will wait for some time before deleting question
EDIT:
as i replied in comment - i already received this answer in mocha google groups, but there are some other restrictions i not mentioned in question - i'm using grunt-simple-mocha and as i inspected code - there is no bail option when i pass options to mocha constructor
i failed to find where are options from command line are passed to Suite instance, and the only line where it may be as i see it is a
suite.bail(this.bail());
which looks weird for me
i think i will open issue at mocha github pages, maybe they will extend passed options with bail setting later, or just explain me what i did wrong and how i can solve my problem in other way
EDIT: and now, according to https://github.com/visionmedia/mocha/commit/f0b441ceef4998e570a794dcff951bf2330eb0c5 latest Mocha have bail option from the box. Thanks to authors!
You can skip tests by placing an x in front of the describe or it block, or placing a . skip after it. describe('feature 1', function() {}); describe.
According to it, tests are run synchronously. This only shows that ordered code is run in order. That doesn't happen by accident.
Run a Single Test File Using the mocha cli, you can easily specify an exact or wildcarded pattern that you want to run. This is accomplished with the grep option when running the mocha command. The spec must have some describe or it that matches the grep pattern, as in: describe('api', _ => { // ... })
Mocha does not run individual tests in parallel. If you only have one test file, you'll be penalized for using parallel mode.
Mocha supports bailing after the first test failure, is that what you want?
From mocha --help
:
-b, --bail bail after first test failure
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