8

我们在业力测试中使用伊斯坦布尔进行代码覆盖。这对于跟踪我们在 JavaScript 中的单元测试的代码覆盖率非常有用。但是,这不会跟踪我们 HTML 模板中的代码覆盖率。

我们的模板中几乎没有逻辑,但我们仍然想要跟踪并确保我们在测试中正确覆盖了复杂性。确保正确覆盖所有 HTML 模板的最佳实践是什么?在我们的特殊情况下,我们使用 ng-if 和 ng-switch。我们希望确保正确覆盖所有分支。

4

2 回答 2

2

虽然您可以通过第三方插件 ( https://www.npmjs.com/package/protractor-istanbul-plugin ) 从伊斯坦布尔获取覆盖率报告,但问题是,与 React 或其他将模板 (JSX) 转换为javascript DOM 操作,Angular 不会以对生成覆盖率报告所需的工具可行的方式公开生成的 DOM。

于 2016-03-05T14:58:54.317 回答
0

不幸的是,istanbul 和 karma 是为了测试 JavaScript 而不是 HTML 模板而开发的。由于您的 ng-if 和 ng-switch 语句可能会影响页面上显示/未显示的内容,因此您可能需要考虑使用 Angular 的端到端套件Protractor。据我所知,端到端测试没有覆盖工具。

于 2014-12-23T00:11:53.367 回答