我已经在我的机器上安装了Jest,并且从终端输入jest
导致来自父级的测试也被执行。我想只从当前文件夹运行测试。
例如如果我转到终端中的c:/dev/app
并输入some-jest-command
,则只应运行.test.js
文件夹中存在app
的文件。目前,从jest
文件夹运行app
命令也会在父文件夹中运行测试,这不是我想要的行为。
答案 0 :(得分:15)
如果要从特定文件夹用户运行测试,请使用--testPathPattern jest标志。设置npm脚本时,也将路径添加到文件夹。在您的package.json中,在您的npm脚本中添加标志。查看下面的代码以获取示例。
"scripts": {
....
"test:unit": "jest --watchAll --testPathPattern=src/js/tests/unit-tests",
"test:integration": "jest --watchAll --testPathPattern=src/js/tests/integration",
"test:helpers": "jest --watchAll jest --findRelatedTests src/js/tests/unit-tests/helpers/helpers.test.js"
....
},
打开命令行后,更改项目所在的目录并运行单元测试。
npm run test:unit
或集成测试。
npm run test:integration
或者如果您只想对一个特定文件运行进行测试
npm run test:helpers
答案 1 :(得分:14)
默认情况下,Jest会尝试递归测试package.json
所在文件夹中的所有内容。
假设您在c:/dev/app
,而package.json
位于c:
。如果您调用Jest的基本命令是npm test
,请尝试使用run npm test dev/app
。
答案 2 :(得分:1)
要仅在特定目录中运行测试并强制Jest仅读取某些类型的文件(例如,新的Jest版本为@ 24.9.0的“ ExampleComponent.test.js”,则必须在jest中编写确切的“ testMatch” .config.json || package.json在{jest}部分的下一个"testMatch": [
"<rootDir>/src/__tests__/**/*.test.js"
]
中,
在我的情况下,此testMatch会在 tests / subdirectories /中命中所有带有.test.js前缀的文件,并跳过所有其他文件,例如'setupTest.js'和其他{
"setupFiles": [
"raf/polyfill",
"<rootDir>/setupTests.js"
],
"snapshotSerializers": [
"enzyme-to-json/serializer"
],
"moduleNameMapper": {
"^.+\\.(css|less|scss|sass)$": "identity-obj-proxy"
},
"testMatch": [
"<rootDir>/src/__tests__/**/*.test.js"
]
}
。
只需适应您的“ testMatch”正则表达式即可。
一些注意事项:如果对任何人都重要,这是针对jest@24.9.0 &&ase@3.10.0的。
我希望这对某人有用,使所有人欢呼。