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

2g32fytz  于 2022-12-08  发布在  Jest
关注(0)|答案(6)|浏览(260)

I have Jest installed on my machine and typing jest from terminal results in tests from parent folers also getting executed. I want to run tests only from the current folder.
For e.g. if I go to c:/dev/app in terminal and type some-jest-command , it should only run files with .test.js present in the app folder. Currently, running jest command from app folder runs tests in parent folders too, which is not my desired behaviour.

0kjbasz6

0kjbasz61#

默认情况下,Jest将尝试递归测试package.json文件夹中的所有内容。
假设你在c:/dev/app中,而你的package.jsonc:中,如果你调用Jest的基本命令是npm test,那么试着运行npm test dev/app

7uzetpgm

7uzetpgm2#

如果你想从一个特定的文件夹运行测试,使用--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
yks3o0rb

yks3o0rb3#

只在特定目录下运行测试,并强制Jest只读取特定类型的文件(我的例子:'ExampleComponent.test.js'对于新Jest版本@24.9.0,您必须在jest.config.json中准确写入“testMatch”||"testMatch": [ "<rootDir>/src/__tests__/**/*.test.js" ]下一个“jest”部分中的package.json,在我的示例中,此testMatch会命中tests/subdirectories/中前缀为. test.js的所有文件,并跳过“mocks”子目录(位于“tests”目录中)中的所有其他文件(如“setupTest.js”和其他.js文件),因此,我的“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,如果它对任何人都重要的话。
我希望它会对某人有用,干杯。

atmip9wb

atmip9wb4#

--package.json

"scripts": {
    "test": "jest"
  }

--jest.config.js

module.exports = {
    "testMatch": [
        "<rootDir>/tests/unit/*.test.js"
    ]
  }
q1qsirdb

q1qsirdb5#

从项目的根目录下,您可以运行jest <substring of files>,它将只运行包含您添加的子字符串的测试文件。

$ jest /libs/components
> [PASS] /libs/components/button.tsx
8gsdolmq

8gsdolmq6#

Yarn:

yarn test nameoffolder

国家/分钟:

npm test nameoffolder

例如,如果您有一个名为widget的文件夹,并且只想运行widget文件夹中的测试,则可以运行此命令。
Yarn:

yarn test widget

国家/分钟:

npm test widget

相关问题