Node.js 在MochaJS中:如何按顺序运行异步测试?

Node.js 在MochaJS中:如何按顺序运行异步测试?,node.js,mocha.js,chai,Node.js,Mocha.js,Chai,我正在使用这个框架对NodeJS代码进行单元测试 测试如下所示: import 'mocha'; import { assert } from 'chai'; import { describe } from 'mocha'; describe('Test Suite', () => { function execute(testData: string) { it('Individual Test', async function() {

我正在使用这个框架对NodeJS代码进行单元测试

测试如下所示:

import 'mocha';
import { assert } from 'chai';
import { describe } from 'mocha';

describe('Test Suite', () => {
    function execute(testData: string) {
        it('Individual Test', async function() {
            // await some asynchronous call using testData
            // do some asserts
        });
    }

    const testData: string[] = ["test 1", "test 2", "test 3"];

    for (const data: string of testData) {
        execute(data);
    }
});
事实证明,多个测试(名为“单个测试”)将并行运行。有没有办法等待每个测试,以便在下一个测试开始之前完成?我不想为每个
testData
项声明单独的测试,因为这需要大量的复制/粘贴。

请确保不要使用摩卡的--parallel标志

你有两个选择。在单独测试的异步函数中使用或等待

或者您可以使用delete“async”并使用done()进行异步测试。当测试应该结束时调用done()。如果调用时出错,测试将失败。确保只调用一次done()

it('单独测试',功能(完成){
aPromise()。然后(v=>{
完成();
}).接住(完成);
});
参考资料:
完成:

如果您在编写测试时没有使用包装器函数,它们是否工作?您如何知道它是并行运行的