我正在使用 create-react-app 创建一个React应用程序。当我执行 npm测试---coverage 时,该测试就不存在了。 npm test实际上运行 react-scripts测试。有想法吗?
答案 0 :(得分:1)
大多数情况下,由于以下原因,可能会发生此问题。
在文档中未提及必需的npm-script
自变量
package.json
个文件。如果您使用create-react-app
创建您的
反应应用程序,那么它将不接受任何命令行
论点。要解决此问题,请在
script
中的package.json
标签。
"test": "react-scripts test --coverage --watchAll", //mark --watchAll=false if you want.
在此未提及必需的jest
配置参数
package.json
或jest.config.js
文件。你应该提到文件
这需要包括在您的测试范围内
配置。在您的计算机中添加以下配置
package.json
。
package.json
"jest": {
"collectCoverageFrom": [
"src/**/*.js",
"!src/index.js", // files you need to avoid in test coverage
"!src/hooks/*.js",
"!src/context/*.js"
],
"coverageThreshold": {
"global": {
"branches": 90,
"functions": 90,
"lines": 90,
"statements": 90
}
},
"coverageReporters": [
"html",
"text"
]
},
答案 1 :(得分:0)
在观看模式下,Jest无法使用覆盖范围。
由于默认情况下,“ react-scripts test --env = jsdom”在监视模式下起作用,因此在生成coverage输出时必须关闭监视模式。
package.json的以下摘录包含一行“ coverage”用于说明,如何在由create-react-app引导的应用程序中实现代码覆盖率。
这只是修改后的“测试”脚本,其中组合了选项-watchAll = false 和-coverage :
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test --env=jsdom",
"coverage": "react-scripts test --env=jsdom --watchAll=false --coverage",
"eject": "react-scripts eject"
}
请注意,使用独立的双破折号-是过时的。
答案 2 :(得分:0)
set CI=true&&npm test
set CI=true&&npm run build
($env:CI = "true") -and (npm test)
($env:CI = "true") -and (npm run build)
CI=true npm test
CI=true npm run build
文档中未包含
docker run -e CI=true [myImage] npm run test
答案 3 :(得分:0)
我尝试了上述所有解决方案,但对我来说,它仍然挂着消息Ran all test suites.
。
但是这个小技巧帮助了
"test:ci": "cross-env CI=true react-scripts test --forceExit --detectOpenHandles",
说明:问题来自于Jest无法关闭所有进程。上面是一个快速的解决方法。理想情况下,您应该跟踪阻止Jest退出的过程。