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

ere*_*eit 9 reactjs jestjs

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

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

ere*_*eit 14

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

"jest": {
  "projects": [
    "src/client/jest.config.js",
    "src/server/unit.jest.config.js",
    "src/server/int.jest.config.js",
   ]
}
Run Code Online (Sandbox Code Playgroud)

然后在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...
};
Run Code Online (Sandbox Code Playgroud)

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