【问题标题】:Run Jest tests only for current folder仅为当前文件夹运行 Jest 测试
【发布时间】:2018-09-11 18:42:36
【问题描述】:

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

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

【问题讨论】:

  • 你用什么工具来开玩笑,npm?开玩笑的package.json 配置是什么?你的package.json在哪里?
  • 我正在使用 npm。 package.json 中没有针对 jest 的特殊配置,它位于我正在运行 jest 测试的文件夹上方的几个目录中。

标签: javascript npm jestjs


【解决方案1】:

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

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

一个小提示:这是给 jest@24.9.0 &&酵素@3.10.0 的,如果它对任何人都很重要。

希望对大家有用,加油。

【讨论】:

    【解决方案2】:

    如果您想从特定文件夹运行测试,请使用 --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
    

    【讨论】:

    【解决方案3】:

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

    假设您在c:/dev/app,而您的package.jsonc:。如果您调用 Jest 的基本命令是 npm test,那么请尝试运行 npm test dev/app

    【讨论】:

    • 只是对答案的澄清,可以传递给 jest 的第一个参数是目录。设置 IDE 时,您可以将目标目录(例如“dev/app”)作为 cli 参数传递给 Jest
    猜你喜欢
    • 2022-01-22
    • 2020-01-16
    • 2022-11-24
    • 1970-01-01
    • 2019-05-05
    • 2019-10-21
    • 1970-01-01
    • 2018-02-17
    • 2018-10-14
    相关资源
    最近更新 更多