如何从开玩笑手表中排除文件?

Ian*_*Ian 22 javascript jestjs

我正在做一些有点奇怪的东西jest用于测试我正在写一些东西到磁盘.如果我watch在jest中使用标志,那么我(很明显)发现每次我向磁盘写入内容时,测试会再次重新启动.

我目前没有任何配置,我已经看过文档,但我真的不清楚我需要使用哪个选项来抑制观看特定文件.我相信我可以看到从代码覆盖中排除代码,测试执行而不是实际观察者的选项.

在我的情况下,我有一个这样的设置,我只想抑制我的结果目录:

  • __tests__
    • __snapshots__ (由jest创建)
    • results (由我和要创建的目录创建)
  • testfile1.js

有人能说清楚这样做吗?

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)

  • 我用"jest"尝试了这个:{"modulePathIgnorePatterns":["_ _ test__/results /"]},`但不幸的是它不起作用. (3认同)

Nim*_*ush 13

根据 Jest 文档,watchPathIgnorePatterns应该是您想要的方式。这适用于 Jest 23.xx 及更高版本。

您可以将此配置添加到jest.config.jspackage.json > jest


Isl*_*aev 11

当我有一个不能被测试的目录时,我遇到了同样的问题,尽管我仍然希望它在__tests__目录内(例如,__mocks__)。

在这种情况下,您不应使用相对路径(无斜杠)。所以在你的package.json文件里面添加:

jest: {
  "modulePathIgnorePatterns": ["__mocks__"]
}
Run Code Online (Sandbox Code Playgroud)

那解决了我的问题。


JRi*_*dsz 9

笑话版本:27.2.1

为了从测试和覆盖范围中排除:

"testPathIgnorePatterns" : [
  "tests/login/default/MockStrategy.js",
],
coveragePathIgnorePatterns: [
  "tests/login/default/MockStrategy.js"
],
Run Code Online (Sandbox Code Playgroud)


man*_*nas 8

从玩笑测试中排除目录,请使用testPathIgnorePatterns

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)

  • 与 `modulePathIgnorePatterns` 有什么区别? (3认同)
  • 与 modulePathIgnorePatterns 不同,这对我有用 (3认同)
  • `"testPathIgnorePatterns": ["&lt;rootDir&gt;/cypress/"]` 请参见此处:https://github.com/wallabyjs/public/issues/2245 (2认同)
  • 搜索10分钟后的最佳答案。 (2认同)

Far*_*han 7

我使用以下模式,它对我有用:

collectCoverageFrom: [
    'src/**/*.js',
    '!src/api/graphql/**/*.js',
    '!src/action/**/*.js',
    '!src/utils/dev/*.js',
    '!src/**/*.e2e.js',
],
Run Code Online (Sandbox Code Playgroud)

!意味着我们排除该文件夹或文件。


cod*_*eek 6

排除整个文件夹,请在package.json文件的“jest”属性中添加以下内容:

"modulePathIgnorePatterns": [
  "<rootDir>/src/services"
],
Run Code Online (Sandbox Code Playgroud)

排除单个文件

"collectCoverageFrom": [
  "!src/index.js"
],
Run Code Online (Sandbox Code Playgroud)