如何使用 istanbul 生成的 __coverage__ 全局对象来获取代码覆盖率报告?

问题描述 投票:0回答:1

我使用 istanbul 来了解当我在网络应用程序上执行操作时执行了哪些代码行。为了做到这一点,我首先使用以下方法检测代码:npx nyc Instrument

然后我部署了这段代码并进行了测试。这生成了一个 __coverage__ 全局对象,我已将其复制到 ./.nyc_output/coverage.json

为了获取代码覆盖率报告,我尝试了 npx nyc report --reporter=html --report-dir=./coverage

但是打开生成的 html 文件,我看到它是空的: index.html

我可以做什么来解决这个问题?

javascript code-coverage istanbul nyc
1个回答
0
投票

我遇到了类似的问题,这是由于纽约选项造成的:在

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
就像一个魅力

© www.soinside.com 2019 - 2024. All rights reserved.