我们想要测量 Angular 8 应用程序代码覆盖率。我们有一个用 selenium java 编写的 e2e 测试用例,它加载部署在浏览器中另一台机器上的 Angular 应用程序,并运行一些 e2e 测试用例集。问题是我如何测量 Angular 应用程序 javascript 代码覆盖率。
在高层,我可以想到一些使用 istanbul 来检测我的 Angular JavaScript 代码的机制。 Istanbul 将通过在浏览器中加载应用程序来记录 selenium java 代码执行 e2e 测试用例时的代码覆盖率。
寻找详细步骤我如何做同样的事情。
经过长时间的努力,我能够解决这个问题。以下是我获取代码覆盖率报告所遵循的步骤。
-
运行 Angular 命令行界面产品构建。这将创建 dist 文件夹。例如//dis/
-
使用当前的 Istanbul 检测 dist 文件夹中存在的 JS 文件nyc
我们正在执行就地检测命令,因此提供了 --in-place 选项。
nyc instrument dist/myapp dist/myapp --exclude-after-remap=false --complete-copy --in-place
-
从文件夹 dist 运行本地 http 服务器。打开网络应用程序并手动浏览它。
-
上面的检测代码将添加window.__coverage__
多变的。当您浏览上述应用程序时,覆盖范围信息会添加到window.__coverage__
.
-
存储覆盖信息存储在window.__coverage__
到名称为coverage.json 的json 文件中。它可以是任何名称。
-
将该 json 文件存储在您的 Angular 代码库中。在 .nyc_output 文件夹下。您需要使用 .nyc_output 创建此隐藏文件夹。
-
运行覆盖率报告命令。
nyc report --reporter=lcov --report-dir=coverage-output
-
上述命令将生成 html 报告。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)