如何在单个项目中设置多个jest配置?

时间:2017-11-09 00:39:03

标签: reactjs jestjs

create-react-app样板中,它使用相同的package.json文件同时包含服务器和客户端代码。我想有三个独立的开玩笑配置:客户端单元测试,服务器单元测试和服务器集成测试。不幸的是,我无法让这个工作。我的计划是为每个选项提供yarn run命令,然后使用--config CLI选项指定配置为jest。但后来我遇到了this roadblock,它发生在v20和v21上,并且没有显示任何进展。基本上,人们报告使用--config阅读配置文件的问题,而后备是使用配置package.json。不幸的是,您只能指定一个配置文件。

有没有人设法让这个工作,如果有,你能描述你的设置(开玩笑的版本等)。我想知道我是否需要降级到v19。或者,我采取了错误的方法吗?

1 个答案:

答案 0 :(得分:10)

显然,jest的新功能是--projects选项。您可以在package.json文件中执行以下操作:

"jest": {
  "projects": [
    "src/client/jest.config.js",
    "src/server/unit.jest.config.js",
    "src/server/int.jest.config.js",
   ]
}

然后在src/client/jest.config.js中,您可以定义特定的配置:

module.exports = {
  name: 'client',
  displayName: 'client',

  // NOTE: if you don't set this correctly then when you reference
  // it later in a path string you'll get a confusing error message.
  // It says something like' Module <rootDir>/config/polyfills.js in
  // the setupFiles option was not found.'
  rootDir: './../../',

  testMatch: [
    "<rootDir>/src/server/**/__tests__/*.unit.{js,jsx}",
    "<rootDir>/src/server/**/__tests__/unit/*.{js,jsx}"
  ],

  // etc...
};

以下是描述该功能的帖子: https://facebook.github.io/jest/blog/2017/05/06/jest-20-delightful-testing-multi-project-runner.html