仅对当前文件夹运行Jest测试

时间:2018-04-02 14:27:31

标签: javascript npm jestjs

我已经在我的机器上安装了Jest,并且从终端输入jest导致来自父级的测试也被执行。我想只从当前文件夹运行测试。

例如如果我转到终端中的c:/dev/app并输入some-jest-command,则只应运行.test.js文件夹中存在app的文件。目前,从jest文件夹运行app命令也会在父文件夹中运行测试,这不是我想要的行为。

3 个答案:

答案 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'和其他文件,而在 mocks < / strong>子目录放置在“ 测试”目录中,因此,我的“ jest.config.json”看起来像这样{ "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的。

我希望这对某人有用,使所有人欢呼。