问题 用jest测试两个环境


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

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

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

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

但这并不能让我同时兼顾两者。


13123
2017-12-25 01:35


起源



答案:


编辑(2018年1月): 

现在可以这样做(自Jest v20起),并调用该选项 projects。了解更多 它是文档

基本上,您可以定义要在其中运行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

随意跳进去发表评论!


10
2018-02-14 21:30



我发现Jest 20+可以实现这一点。你现在如何正确地设置它?例如,我需要不同的jest.config.js吗? 编辑:好的,所以我找到了一个解决方案:我做的一种方法是采用原始的顶级jest配置,并将其置于 projects 我的原始环境的数组,然后为我的Node环境定义第二个配置。这似乎适用于定义的一(1)个jest.config.js文件! - Con Antonakos
太棒了你解决了!您还可以将一系列路径传递给您的项目,甚至是一个glob,每个项目都需要具有某种配置(或者 jest.config.js 要么 jest 进入 package.json)。 - Michał Pierzchała


答案:


编辑(2018年1月): 

现在可以这样做(自Jest v20起),并调用该选项 projects。了解更多 它是文档

基本上,您可以定义要在其中运行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

随意跳进去发表评论!


10
2018-02-14 21:30



我发现Jest 20+可以实现这一点。你现在如何正确地设置它?例如,我需要不同的jest.config.js吗? 编辑:好的,所以我找到了一个解决方案:我做的一种方法是采用原始的顶级jest配置,并将其置于 projects 我的原始环境的数组,然后为我的Node环境定义第二个配置。这似乎适用于定义的一(1)个jest.config.js文件! - Con Antonakos
太棒了你解决了!您还可以将一系列路径传递给您的项目,甚至是一个glob,每个项目都需要具有某种配置(或者 jest.config.js 要么 jest 进入 package.json)。 - Michał Pierzchała