我使用MochaJS框架对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
项声明单独的测试,因为这将需要大量的复制/粘贴。
确保不要使用mocha的--parallel标志。
你有两个选择。在Individual Test中的async函数中等待使用。
或者,您可以使用delete"异步;并使用done((进行异步测试。在测试应该结束时调用done((。如果调用它时出现错误,测试将失败。请确保只调用done((一次。
it('Individual Test', function(done) {
aPromise().then(v => {
done();
}).catch(done);
});
参考文献:完成:https://mochajs.org/#asynchronous-代码