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

mav*_*ick 11 javascript npm jestjs

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

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

Ser*_*are 28

如果要从特定文件夹用户运行测试,请使用 --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"
    ....
},
Run Code Online (Sandbox Code Playgroud)

之后打开命令行,更改项目所在的目录并运行单元测试。

npm run test:unit
Run Code Online (Sandbox Code Playgroud)

或集成测试。

npm run test:integration
Run Code Online (Sandbox Code Playgroud)

或者如果您只想对一个特定文件运行进行测试

npm run test:helpers
Run Code Online (Sandbox Code Playgroud)


And*_*nko 19

默认情况下,Jest将尝试递归测试任何文件夹package.json所在的所有内容.

让我们说你在c:/dev/app,而你package.jsonc:.如果您调用Jest的基本命令是npm test,则尝试运行npm test dev/app.


Gor*_*lke 5

要仅在特定目录中运行测试并强制 Jest 仅读取某些类型的文件(我的示例:'ExampleComponent.test.js' 与新 Jest 版本 @24.9.0,您必须在 jest.config 中写入精确的“testMatch”。 json || package.json in "jest" part next "testMatch": [ "<rootDir>/src/__tests__/**/*.test.js" ],在我的例子中,这个 testMatch 命中测试/subdirectories/ 中带有前缀 .test.js 的所有文件,并跳过所有其他文件,如 'setupTest.js' 和其他 .js 文件' mocks ' 子目录位于 ' tests ' 目录中,所以,我的 '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"
        ]
    }
Run Code Online (Sandbox Code Playgroud)

只需适应您的需求“testMatch”正则表达式。

一点注意:如果对任何人都很重要,这适用于 jest@24.9.0 &&酶@3.10.0。

我希望它对某人有用,大家欢呼。