我使用 istanbul 来了解当我在网络应用程序上执行操作时执行了哪些代码行。为了做到这一点,我首先使用以下方法检测代码:npx nyc Instrument
然后我部署了这段代码并进行了测试。这生成了一个 __coverage__ 全局对象,我已将其复制到 ./.nyc_output/coverage.json
为了获取代码覆盖率报告,我尝试了 npx nyc report --reporter=html --report-dir=./coverage
我可以做什么来解决这个问题?
我遇到了类似的问题,这是由于纽约选项造成的:在
monorepo
中,我试图从另一个包中获取文件的覆盖范围。
- monorepo
- apps
- package_1
- node webapp.js (using the content instrumented of package_2 )
- package_2
- dist
- build.js (instrumented with Istambul)
首先要检查的是
.json
中的.nyc_output
文件是否具有预期的覆盖内容。
如果是的话,你可以像我一样移动Nyc options的
cwd
条目:
// monorepo/apps/package_1/nyc.config.js
export default {
cwd: `${process.cwd()}/../../`, // targetting the monorepo root
reportDir: `${process.cwd()}/coverage/backend`,
tempDir: `${process.cwd()}/.nyc_output`,
}
// process.cwd() is monorepo/apps/package_1
然后
nyc report
就像一个魅力