我想使用jest进行服务器单元测试(而不是mocha + chai)。 有没有一种方法可以在所有测试开始(初始目的)之前运行异步功能一次而不是每个测试文件?并且如果在所有测试完成后有一种运行方式吗?
答案 0 :(得分:11)
此功能已在Jest's 22 version中添加,globalSetup
和globalTeardown
配置。
请查看this示例。
答案 1 :(得分:8)
Jest提供beforeAll
和afterAll
。与test
/it
一样,如果函数返回一个promise,它将等待一个promise来解决。
beforeAll(() => {
return new Promise(resolve => {
// Asynchronous task
// ...
resolve();
});
});
它还支持回调样式,如果你有一些使用回调的现有测试代码,虽然它建议使用promises。
beforeAll(done => {
// Asynchronous task
// ...
done();
});
答案 2 :(得分:4)
如果使用npm执行jest测试,则可以在执行其他命令之前运行任何节点命令或任何可执行文件
"scripts": {
"test": "node setup.js && jest"
}
现在您可以使用命令
运行它$ npm t
答案 3 :(得分:0)
jest在新版本中提供了用于全局设置和拆卸的选项。您可以为导出异步功能的设置文件和拆卸文件创建文件,并以这种方式在jest configurarion中提供该路径。
"globalSetup": "setup-file-path",
"globalTeardown": "tear-down-file-path"