用玩笑测试两个环境
Testing two environments with jest
我想设置两个不同的环境,并且能够运行都处于手表模式。
|-- /server
| |-- index.js <- Node
|-- /client
| |-- index.js <- jsdom
|-- package.json
实际上我运行为每个环境开玩笑两次,为每个环境提供不同的配置文件:
$ yarn test -- --config=server.config.json
$ yarn test -- --config=client.config.json
但这不允许我同时运行两者。
编辑(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。
随时加入并发表评论!
您还可以使用 the @jest-environment
docblock 为每个文件设置测试环境:
/**
* @jest-environment jsdom
*/
test('use jsdom in this test file', () => {
const element = document.createElement('div');
expect(element).not.toBeNull();
});
我想设置两个不同的环境,并且能够运行都处于手表模式。
|-- /server
| |-- index.js <- Node
|-- /client
| |-- index.js <- jsdom
|-- package.json
实际上我运行为每个环境开玩笑两次,为每个环境提供不同的配置文件:
$ yarn test -- --config=server.config.json
$ yarn test -- --config=client.config.json
但这不允许我同时运行两者。
编辑(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。
随时加入并发表评论!
您还可以使用 the @jest-environment
docblock 为每个文件设置测试环境:
/**
* @jest-environment jsdom
*/
test('use jsdom in this test file', () => {
const element = document.createElement('div');
expect(element).not.toBeNull();
});