我们在业力测试中使用istanbul代码覆盖率。这非常适合跟踪JavaScript中单元测试的代码覆盖率。但是,这不会跟踪HTML模板中的代码覆盖率。
我们的模板中的逻辑非常少,但仍然存在我们想要跟踪的复杂性,并确保我们已在测试中正确覆盖。确保您对所有HTML模板进行适当覆盖的最佳做法是什么?在我们的特定情况下,我们使用ng-if和ng-switch。我们希望确保所有分支都得到适当的覆盖。
答案 0 :(得分:1)
虽然您可以通过第三方插件(https://www.npmjs.com/package/protractor-istanbul-plugin)从伊斯坦布尔获得报道报告,但问题是,与React或其他将模板(JSX)转换为javascript DOM操作的库不同,Angular不公开生成DOM的方式对于生成覆盖率报告所必需的检测是可行的。
答案 1 :(得分:0)
不幸的是,伊斯坦布尔和业力是为了测试JavaScript而开发的,而不是HTML模板。由于ng-if和ng-switch语句可能会影响页面上显示的内容,因此您可能需要考虑使用Angular的端到端套件Protractor。据我所知,端到端测试没有覆盖工具。