我有一堆describe
来测试API的不同部分。在一个部分中,所有测试都依赖于一个测试成功。我想让Mocha运行第一个测试,如果失败,请跳过所有后续测试并为API的下一部分运行下一个测试套件。
mocha --bail
会完全停止测试,并且不会继续下一部分。
mocha-steps
是一个可行的解决方案,但我不想使用任何外部库。此外,它在失败后不会skip
步骤,它不会完全打印它们。就像我说的那样,它是一个可行的解决方案,但并不理想。
在vanilla Mocha中实现此行为的最佳方法是什么?
答案 0 :(得分:3)
把你称之为"首先测试"在before
块内的describe
钩子中,包含所有其他测试:
describe("bunch of related tests", function () {
before(function () {
// "first test" here
});
it("test 1", function () { ... });
it("test 2", function () { ... });
// ...
});
这是"香草摩卡"设置before
挂钩中的代码与每个测试之间的依赖关系。如果before
挂钩失败,Mocha将报告它,它将跳过describe
块中的所有测试。如果你在其他地方有其他测试,它们仍会运行。
答案 1 :(得分:0)
尽管我对接受的答案进行了投票,但是我无法获得在it
函数中运行的Mocha before
测试。相反,我不得不将第一个测试分为自己的describe
并在测试通过的情况下设置一个变量,然后检查before
的{{1}}中包含所有其他测试的变量。 / p>
describe