如何在Jest上分离单元和集成/长时间运行的测试?

时间:2017-02-17 17:18:24

标签: jestjs

目前,我有两个文件夹:__tests__用于单位(快速)测试,__integration__用于慢速测试。

然后,在package.json

{
  "scripts": {
    "test": "jest",
    "test:integration": "jest -c '{}'",
    ...
  },
  "jest": {
    "testPathIgnorePatterns": ["/node_modules/", "__integration__"]
  }
}

因此,当我想要进行TDD时,我只运行npm test,当我想测试整个项目时,npm run test:integration

由于Jest是以" no配置"测试框架,我在想是否有更好(或适当)的方式来配置它。

谢谢。

2 个答案:

答案 0 :(得分:8)

引用此post

您可以尝试名称文件,如:

index.unit.test.jsapi.int.test.js

  

借助Jest的模式匹配功能,它使运行变得简单   它们也是分开的。对于单元测试运行jest unit和for   集成测试运行jest int

您可以根据您的偏好定义文件结构/位置,因为基于文件名的模式匹配是jest知道运行的方式。

另见jest cli documentation about npm scripts

  

如果您通过npm test运行Jest,您仍然可以使用命令行   通过在--和Jest参数

之间插入npm test来创建参数

答案 1 :(得分:4)

您是否尝试过jest --watch用于TDD?它仅运行与您的git更改相关的文件,首先运行错误并大量利用缓存来提高速度。

除此之外,jest -c accepts a path,不是字符串。如果 jest-integration-config.json 位于项目的根目录中,那么jest -c jest-integration-config.json应该很好。