在所有测试之前,Jest运行async函数ONCE

时间:2017-07-26 00:53:14

标签: javascript jestjs

我想使用jest进行服务器单元测试(而不是mocha + chai)。 有没有一种方法可以在所有测试开始(初始目的)之前运行异步功能一次而不是每个测试文件?并且如果在所有测试完成后有一种运行方式吗?

4 个答案:

答案 0 :(得分:11)

此功能已在Jest's 22 version中添加,globalSetupglobalTeardown配置。 请查看this示例。

答案 1 :(得分:8)

Jest提供beforeAllafterAll。与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"