web-dev-qa-db-fra.com

Ignorer les tests Mocha suivants de la spécification en cas d'échec

Je n'arrive pas à trouver un moyen d'arrêter une partie de it de s'exécuter si l'un d'eux échoue

J'utilise mocha-as-promised, le code peut donc différer de celui habituel

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!");
          });
      });
    });

  });
});

et je veux que si should navigate to test page and check title a échoué alors submit element should be clicked1 doit être ignoré

EDIT: semble que je ne fais que mal mes tests, attendra un certain temps avant de supprimer la question

MODIFIER:

comme je l'ai répondu en commentaire - j'ai déjà reçu cette réponse dans les groupes Google mocha, mais il y a d'autres restrictions que je n'ai pas mentionnées dans la question - j'utilise grunt-simple-mocha et comme j'ai inspecté le code - il n'y a pas d'option de caution quand je passer les options au constructeur mocha

je n'ai pas réussi à trouver où sont les options de la ligne de commande sont passées à l'instance Suite, et la seule ligne où il peut être comme je le vois est un

suite.bail(this.bail());

ce qui me semble bizarre

je pense que j'ouvrirai le problème sur les pages de mith github, peut-être qu'ils étendront les options passées avec le réglage de la caution plus tard, ou m'expliqueront simplement ce que j'ai fait de mal et comment je peux résoudre mon problème d'une autre manière

EDIT: et maintenant, selon https://github.com/visionmedia/mocha/commit/f0b441ceef4998e570a794dcff951bf2330eb0c5 le dernier Mocha a l'option de caution de la boîte. Merci aux auteurs!

48
llamerr

Mocha prend en charge le vidage après le premier échec du test, c'est ce que vous voulez?

De mocha --help:

-b, --bail                      bail after first test failure
101
Beau