mocha:同步调用测试用例

时间:2017-10-14 03:25:21

标签: javascript mocha

是否可以与Mocha同步调用测试用例?例如,我有以下代码:

context('Context of test suite', () => {
  it('test case name', () => {
    //call expect() a few times
  })
})
console.log('foo')

我想运行它,但我想保证在测试用例执行并通过或失败之后才会打印fooit不会返回Promise,也不会返回context,因此我无法使用then执行此操作。我想要的是什么?

此测试用例存在于after块内。

1 个答案:

答案 0 :(得分:1)

您可以将console.log移动到嵌套的after

describe('all my tests', () => {

  it('#1', done => setTimeout(done, 500))
  it('#2', done => setTimeout(done, 500))
  it('#3', done => setTimeout(done, 500))

  after(() => {

    context('Context of test suite', () => {

      it('test case name', () => {})

      after(() => {
        console.log('foo');
      });
    })

  });

});

虽然我很难理解你为什么要使用这样的设置。一个问题是,您无法在根级after(任何describe块之外)中使用此设置,并且after不是&{ #39; t意味着进行其他测试,它意味着在测试后清理

我可能会使用这样的东西:

describe('all my tests', () => {

  it('#1', done => setTimeout(done, 500))
  it('#2', done => setTimeout(done, 500))
  it('#3', done => setTimeout(done, 500))

});

describe('Context of test suite', () => {

  it('test case name', () => {})

  after(() => {
    console.log('foo');
  });
})

即。只需放置必须运行的套件,最后,最后。如果您愿意,可以在套件外移动最后after并将其提升到根级别挂钩。