Jestjs 使用jest测试两个环境

Jestjs 使用jest测试两个环境,jestjs,Jestjs,我想设置两个不同的环境,并能够在观察模式下运行 |-- /server | |-- index.js <- Node |-- /client | |-- index.js <- jsdom |-- package.json 但这不允许我同时运行这两个程序。编辑(2018年1月): 现在可以这样做了(从Jest v20开始),该选项称为projects。阅读更多关于 基本上,您可以定义希望Jest在其中运行的项目数组: { "projects": ["&l

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

|-- /server
|     |-- index.js  <-  Node
|-- /client
|     |-- index.js  <-  jsdom
|-- package.json
但这不允许我同时运行这两个程序。

编辑(2018年1月):

现在可以这样做了(从Jest v20开始),该选项称为
projects
。阅读更多关于

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

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

目前这是不可能的,但该案例存在一个问题:

请随意加入并留下评论

您还可以使用以每个文件为基础设置测试环境:

/**
*@jest-environment-jsdom
*/
test('在此测试文件中使用jsdom',()=>{
常量元素=document.createElement('div');
expect(element.not.toBeNull();
});

我认为这在Jest 20+中是可能的。您现在如何正确设置它?例如,我需要不同的jest.config.js吗?编辑:好的,我找到了一个解决方案:我这样做的一种方法是采用我原来的顶级jest配置,并将其放置在原始环境的
projects
数组中,然后为我的节点环境定义第二个配置。这似乎适用于定义的一(1)个jest.config.js文件!太好了,你解决了!您还可以向您的项目传递路径数组,甚至传递glob,其中每个项目都需要某种配置(或者
jest.config.js
或者
package.json
中的
jest
条目)。
{
  "projects": ["<rootDir>/client", "<rootDir>/server", "<rootDir>/some-glob/*"]
}
{
  "projects": ["<rootDir>/client/configs/jest.js", "<rootDir>/server/configs/jest.js"]
}