Ian*_*Ian 22 javascript jestjs
我正在做一些有点奇怪的东西jest用于测试我正在写一些东西到磁盘.如果我watch在jest中使用标志,那么我(很明显)发现每次我向磁盘写入内容时,测试会再次重新启动.
我目前没有任何配置,我已经看过文档,但我真的不清楚我需要使用哪个选项来抑制观看特定文件.我相信我可以看到从代码覆盖中排除代码,测试执行而不是实际观察者的选项.
在我的情况下,我有一个这样的设置,我只想抑制我的结果目录:
__tests__
__snapshots__ (由jest创建)results (由我和要创建的目录创建)有人能说清楚这样做吗?
Chr*_*kes 32
从文档中您需要添加modulePathIgnorePatterns,它是一个将匹配的字符串值数组
modulePathIgnorePatterns [array <string>]#
(默认值:[])在将这些路径视为模块加载器"可见"之前,与所有模块路径匹配的正则表达式模式字符串数组.如果给定模块的路径与任何模式匹配,则在测试环境中不需要().这些模式字符串与完整路径匹配.使用<rootDir>字符串标记包含项目根目录的路径,以防止它意外忽略可能具有不同根目录的不同环境中的所有文件.示例:['<rootDir>/build /'].
https://facebook.github.io/jest/docs/configuration.html#modulepathignorepatterns-array-string
将其添加到您的配置中...
modulePathIgnorePatterns: ["directoryNameToIgnore"]
Run Code Online (Sandbox Code Playgroud)
要么 :
modulePathIgnorePatterns: ["<rootDir>/dist/"]
Run Code Online (Sandbox Code Playgroud)
Nim*_*ush 13
根据 Jest 文档,watchPathIgnorePatterns应该是您想要的方式。这适用于 Jest 23.xx 及更高版本。
您可以将此配置添加到jest.config.js或package.json > jest
Isl*_*aev 11
当我有一个不能被测试的目录时,我遇到了同样的问题,尽管我仍然希望它在__tests__目录内(例如,__mocks__)。
在这种情况下,您不应使用相对路径(无斜杠)。所以在你的package.json文件里面添加:
jest: {
"modulePathIgnorePatterns": ["__mocks__"]
}
Run Code Online (Sandbox Code Playgroud)
那解决了我的问题。
笑话版本:27.2.1
为了从测试和覆盖范围中排除:
"testPathIgnorePatterns" : [
"tests/login/default/MockStrategy.js",
],
coveragePathIgnorePatterns: [
"tests/login/default/MockStrategy.js"
],
Run Code Online (Sandbox Code Playgroud)
从玩笑测试中排除目录,请使用testPathIgnorePatterns
"testPathIgnorePatterns": ["directory to ignore"]
Run Code Online (Sandbox Code Playgroud)
在package.json中的下面,我已配置为忽略“ src”目录
{
"name": "learn-test",
"jest": {
"testPathIgnorePatterns": ["src"]
},
"version": "0.1.0",
"private": true,
"dependencies": {
"react": "^16.4.1",
"react-dom": "^16.4.1",
"react-scripts": "1.1.4"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "jest --watch",
"eject": "react-scripts eject",
},
"devDependencies": {}
}
Run Code Online (Sandbox Code Playgroud)
我使用以下模式,它对我有用:
collectCoverageFrom: [
'src/**/*.js',
'!src/api/graphql/**/*.js',
'!src/action/**/*.js',
'!src/utils/dev/*.js',
'!src/**/*.e2e.js',
],
Run Code Online (Sandbox Code Playgroud)
!意味着我们排除该文件夹或文件。
要排除整个文件夹,请在package.json文件的“jest”属性中添加以下内容:
"modulePathIgnorePatterns": [
"<rootDir>/src/services"
],
Run Code Online (Sandbox Code Playgroud)
要排除单个文件:
"collectCoverageFrom": [
"!src/index.js"
],
Run Code Online (Sandbox Code Playgroud)