【发布时间】:2019-03-25 10:58:35
【问题描述】:
我正在使用 mocha-steps 来构建测试序列。在我的情况下,我们称它们为“主要”、测试和每个子测试。看起来像:
- 测试 1
- 子测试
- 子测试
- 测试 2
- 子测试
- 子测试
step("Test 1", () => {})
describe("Sub-test 1", () => {
it("Sub-Test 1", () => {})
it("Sub-Test 1", () => {})
})
step("Test 2", () => {})
describe("Sub-test 2", () => {
it("Sub-Test 2", () => {})
it("Sub-Test 2", () => {})
})
所以我希望它们按照书面形式运行,但实际上是:
✓ Test 1
✓ Test 2
Sub-test 1
✓ Sub-Test 1
✓ Sub-Test 1
Sub-test 2
✓ Sub-Test 2
✓ Sub-Test 2
在这种情况下,如果“测试 2”失败,子测试根本不会运行,但我需要完成“子测试 1”,因为它们仅依赖于“测试 1”而不是“测试 2”
我试图用不同的“描述”将所有测试分开,但是“步骤”根本不起作用
我的解决方案:
我发现mocha执行describe的默认方式是:
- 其他代码
- 它
- 描述
这种行为在 mocha/lib/runner.js 中定义
所以我什么也没找到,然后在需要mocha 之后自己重新定义跑步者(和套件)
我仍然想在不更改 mocha 代码的情况下找到解决方案。 如果有人感兴趣,我可以将代码粘贴到 gist 上。
【问题讨论】: