Mic*_*ant 21 npm reactjs jestjs
如果我跑
\nnpm test --coverage\nRun Code Online (Sandbox Code Playgroud)\n测试通过,但覆盖范围未运行。
\n当我改变时package.json拥有
react-scripts test --coverage\nRun Code Online (Sandbox Code Playgroud)\n然后,当我npm test这样做时a它运行测试但不运行覆盖范围
测试与覆盖率报告一起运行,但覆盖率显示覆盖率全为零
\n PASS src/components/Header/SubHeader.test.js\n The <SubHeader /> component\n \xe2\x9c\x93 should render (4ms)\n \xe2\x9c\x93 should render with a goback button (1ms)\n \xe2\x9c\x93 should render\n\n----------|----------|----------|----------|----------|-------------------|\nFile | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s |\n----------|----------|----------|----------|----------|-------------------|\nAll files | 0 | 0 | 0 | 0 | |\n----------|----------|----------|----------|----------|-------------------|\nTest Suites: 1 passed, 1 total\nTests: 3 passed, 3 total\nSnapshots: 3 passed, 3 total\nTime: 1.077s\nRan all test suites.\nRun Code Online (Sandbox Code Playgroud)\n最后,我意识到我可以做到
\nnpm run test .\nRun Code Online (Sandbox Code Playgroud)\n问:为什么其他方法不起作用?
\nMar*_*vic 21
重新审视这个问题后,我发现如果你运行这个,你将触发覆盖命令并获得所有结果。
解决方案1
npm run test -- --coverage .
Run Code Online (Sandbox Code Playgroud)
当您将参数传递给npm脚本时,您需要--在添加参数之前添加--coverage. 这就是工作原理npm。请参阅此答案以将参数传递给 npm
解决方案2
yarn test --coverage .
Run Code Online (Sandbox Code Playgroud)
编辑:
我问了一个关于.传递命令的问题,答案非常简单。.被传递,因为它是一个位置参数,与命令--coverage的选项相反npm test:为什么是 . 作为参数传递给 npm 时不带 -- 分隔符?
----问题分析----
问题1
npm test --coverage您没有将--coverage参数传递给test脚本。
在另一种情况下,当您将脚本编辑为:
react-scripts test --coverage并npm test在此处运行,您实际上添加了参数--coverage,但在脚本本身中,而不是从npm命令中添加
问题2
当您这样做时npm run test .,您将传递.这意味着您希望在此命令中包含所有文件。
由于某种原因.传递给npm run test脚本但没有传递--coverage。
另一方yarn传递所有参数,不带--.
| 归档时间: |
|
| 查看次数: |
24129 次 |
| 最近记录: |