摩卡:如何在嵌套的describe()中保释失败的describe()?

时间:2017-06-20 07:37:29

标签: javascript unit-testing mocha

我的测试结构如下

describe('Test Suite'){
     describe('First Test Case'){
        it('1st step'){};
        it('2nd step'){};
        it('3rd step'){};
    }
     describe('Second Test Case'){
        it('1st step'){};
        it('2nd step'){};
        it('3rd step'){};
    }
}

我想使用 - bail ,这样如果在第一个测试用例中任何it()失败,那么describe()应该被保护。但是第二个测试用例应该运行。

我使用以下方法获得预期结果:

describe('Test Suite'){
     this.bail(false)
     describe('First Test Case'){
        this.bail(true);
        it('1st step'){};
        it('2nd step'){};
        it('3rd step'){};
    }
     describe('Second Test Case'){
        this.bail(true);
        it('1st step'){};
        it('2nd step'){};
        it('3rd step'){};
    }
}

如果没有在每个describe()中明确地将保释分配给true,还有其他方法吗?

1 个答案:

答案 0 :(得分:1)

我找到了解决方法,也许会有所帮助。

您可以不是通过文件而是通过我的函数名或测试名来设置条件。

在设置文件中:

const FAILED_TESTS = {};
// Skip test if first test from folder failed
beforeEach(function() {
  if (FAILED_TESTS[this.currentTest.file]) {
    this.skip();
  }
});

afterEach(function() {
  if (this.currentTest.state === "failed") {
    FAILED_TESTS[this.currentTest.file] = true;
  }
});