如何在Windows 10上修复Jest“No Tests Found”?

时间:2017-07-16 19:31:26

标签: jestjs

我正在尝试在我的Windows 10桌面计算机上使用Jest,但它一直告诉我没有找到测试。在我的Windows 10笔记本电脑上,它工作得很好。这是我在桌面上获得的输出:

C:\app> jest
No tests found
In C:\app
   25163 files checked.
   testMatch: **/__tests__/**/*.js?(x),**/?(*.)(spec|test).js?(x) - 743 matches
   testPathIgnorePatterns: \\node_modules\\ - 25163 matches
Pattern: "" - 0 matches

在我的package.json文件中,我的jest配置如下所示:

"jest": {
  "collectCoverageFrom": [
    "app/**/*.{js,jsx}",
    "!app/**/*.test.{js,jsx}",
    "!app/*/RbGenerated*/*.{js,jsx}",
    "!app/app.js"
  ],
  "coverageThreshold": {
    "global": {
      "statements": 98,
      "branches": 91,
      "functions": 98,
      "lines": 98
    }
  },
  "moduleDirectories": [
    "node_modules",
    "app",
    "common"
  ],
  "moduleNameMapper": {
    ".*\\.(css|less|styl|scss|sass)$": "<rootDir>/internals/mocks/cssModule.js",
    ".*\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "<rootDir>/internals/mocks/image.js"
  },
  "setupTestFrameworkScriptFile": "<rootDir>/internals/testing/test-bundler.js"
}

我正在使用节点8.1.4和jest v20.0.4 关于如何开始寻找我的测试的任何想法?

5 个答案:

答案 0 :(得分:3)

我不是100%肯定它是同一个问题。但是对我来说解决它的是摆脱守望者(我在另一个使用继电器的项目的路径上添加了它)。尝试使用--no-watchman(或在jest配置中设置watchman:false)运行

答案 1 :(得分:1)

对于试图了解如何解决此问题的任何人来说,这是Jest中的错误,已在第22版中修复。

更新日志: https://github.com/facebook/jest/blob/master/CHANGELOG.md(PR#5054)

答案 2 :(得分:0)

我从我写过-- --watch的{​​{1}}中删除了package.json

答案 3 :(得分:0)

如果我运行控制台命令

  

jest test / components / checkBox / treezCheckBox.test.js

找到并执行了该文件中的测试。

如果我改为运行控制台命令

  

笑话测试\ components \ checkBox \ treezCheckBox.test.js

我得到了错误

No tests found, exiting with code 1
Run with `--passWithNoTests` to exit with code 0
In D:\treezjs
  814 files checked.
  testMatch: **/__tests__/**/*.[jt]s?(x), **/?(*.)+(spec|test).[tj]s?(x) - 44 matches
  testPathIgnorePatterns: \\node_modules\\ - 814 matches
  testRegex:  - 0 matches
Pattern: test\components\checkBox\treezCheckBox.test.js - 0 matches

=>使用正斜杠或反斜杠似乎很重要。

使用双倍的反斜杠可以工作:

  

笑话测试\\ components \\ checkBox \\ treezCheckBox.test.js

如果您将 vscode启动配置与文件路径变量$ {file}一起使用,则不幸的是,生成的系统命令包含单个“ \”作为分隔符。

另请参见https://github.com/Microsoft/vscode/issues/40256上的讨论和链接的问题 (最后一条语句已过时; $ {relativeFile}也使用“ \”。)

解决方法:使用调试扩展名(例如Daddy Jest)代替自定义启动配置。

答案 4 :(得分:0)

在Jest 24.8.0中看到此问题。看来,如果您添加--runTestsByPath,它将正确处理前进/后退空格,

关于问题https://github.com/microsoft/vscode-recipes/issues/205#issuecomment-533645097的讨论,以及以下建议的VSCode调试配置

{
  "type": "node",
  "request": "launch",
  "name": "Jest Current File",
  "program": "${workspaceFolder}/node_modules/.bin/jest",
  "args": [
   "--runTestsByPath",   // This ensures the next line is treated as a path
   "${relativeFile}",    // This path may contain backslashes on windows
    "--config",
    "jest.config.js"
  ],
  "console": "integratedTerminal",
  "internalConsoleOptions": "neverOpen",
  "disableOptimisticBPs": true,
  "windows": {
    "program": "${workspaceFolder}/node_modules/jest/bin/jest",
  }
}