我已经使用react测试库(@ testing-library / react和@ testing-library / dom)和jest-dom(@ testing-library / jest-dom)编写了单元测试。我能够成功运行测试。
我没有使用jest / jest-cli完整文件。我正在使用反应测试库以及该jest-dom(@ testing-library / jest-dom),它可能是一些子功能,或者我不确定该如何准确地称呼它。
如何使用React测试库获得代码覆盖率?
答案 0 :(得分:7)
好吧, create-react-app 为您提供了很多便利,但同时也施加了一些限制...
您不能仅将标志--coverage
添加到npm run test
,因为该脚本已经在监视模式下运行您的测试(以及仅运行失败的测试之类的事情,以及您可以在互动模式仍然会影响您的覆盖率报告。
首先,请在单运行模式下运行测试。
CI=true react-scripts test --env=jsdom
并且由于您的package.json中已经包含测试任务,因此可以简化任务:
CI=true npm test -- --env=jsdom
好的,我们越来越近了...
因此,现在,在此之上添加--coverage
标志,一切就绪:
CI=true npm test -- --env=jsdom --coverage
总结您的npm任务可能是这样的:
"test:coverage": "CI=true npm test -- --env=jsdom --coverage"
然后您将在终端中看到您的报告,并且将生成coverage
文件夹,并且您可以在其中看到很多有用的信息!
答案 1 :(得分:2)
由于react-scripts
已合并jest
配置,因此您只需输入
npm run test --coverage
或yarn test --coverage
,以生成覆盖率报告。
答案 2 :(得分:1)
此问题的实际答案是:npm test -- --coverage never exits
RTL不提供测试覆盖率统计信息,但是如果您运行,Jest可以提供:
npm run test:coverage
答案 3 :(得分:-1)
您在说命令吗?运行npm run coverage