用jest测试两个环境

时间:2016-12-25 01:35:40

标签: jestjs

我想设置两个不同的环境,并且能够在观察模式下运行。

|-- /server
|     |-- index.js  <-  Node
|-- /client
|     |-- index.js  <-  jsdom
|-- package.json

实际上我为每个环境运行两次jest,为每个环境提供不同的配置文件:

$ yarn test -- --config=server.config.json
$ yarn test -- --config=client.config.json 

但这并不能让我同时跑两个。

2 个答案:

答案 0 :(得分:16)

编辑(2018年1月):

现在可以这样做(自Jest v20起),该选项名为projects。详细了解it the docs

基本上,您可以定义要在其中运行Jest的项目数组:

{
  "projects": ["<rootDir>/client", "<rootDir>/server", "<rootDir>/some-glob/*"]
}

记住每个项目都需要有自己的配置。如果您希望自动选择配置,请将其放在jest.config.js文件中,或者通常放在package.json中。

如果您希望将配置放在其他位置(例如在configs/jest.js中),则需要指向配置文件的路径(正确设置rootDir选项):

{
  "projects": ["<rootDir>/client/configs/jest.js", "<rootDir>/server/configs/jest.js"]
}

原始答案:

目前这是不可能的,但这种情况存在问题:https://github.com/facebook/jest/issues/1206

随意跳进并发表评论!

答案 1 :(得分:3)

您还可以使用enter image description here设置每个文件的测试环境:

/**
 * @jest-environment jsdom
 */

test('use jsdom in this test file', () => {
  const element = document.createElement('div');
  expect(element).not.toBeNull();
});