Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AngularJS html模板的代码覆盖率_Html_Angularjs_Code Coverage_Istanbul - Fatal编程技术网

AngularJS html模板的代码覆盖率

AngularJS html模板的代码覆盖率,html,angularjs,code-coverage,istanbul,Html,Angularjs,Code Coverage,Istanbul,我们在karma测试中使用了代码覆盖率。这非常适合跟踪JavaScript中单元测试的代码覆盖率。但是,这并没有跟踪HTML模板中的代码覆盖率 我们的模板中几乎没有逻辑,但仍然有复杂性,我们希望跟踪并确保我们在测试中正确地涵盖了这些复杂性。有哪些最佳实践可以确保对所有HTML模板进行适当的覆盖。在我们的特殊情况下,我们使用ng if和ng开关。我们希望确保正确覆盖所有分支。不幸的是,伊斯坦布尔和karma的开发是为了测试JavaScript,而不是HTML模板。因为您的NG IF和NG转换语句可

我们在karma测试中使用了代码覆盖率。这非常适合跟踪JavaScript中单元测试的代码覆盖率。但是,这并没有跟踪HTML模板中的代码覆盖率


我们的模板中几乎没有逻辑,但仍然有复杂性,我们希望跟踪并确保我们在测试中正确地涵盖了这些复杂性。有哪些最佳实践可以确保对所有HTML模板进行适当的覆盖。在我们的特殊情况下,我们使用ng if和ng开关。我们希望确保正确覆盖所有分支。

不幸的是,伊斯坦布尔和karma的开发是为了测试JavaScript,而不是HTML模板。因为您的NG IF和NG转换语句可能会影响页面上显示的内容,所以您可能需要考虑使用角的端到端套件。据我所知,没有用于端到端测试的覆盖率工具。

虽然您可以通过第三方插件()从伊斯坦布尔获得覆盖率报告,但问题是,与React或其他将模板(JSX)转换为javascript DOM操作的库不同,Angular不会以一种对生成覆盖率报告所需的仪器来说是可行的方式公开生成的DOM。

谢谢,我们正在使用量角器进行某些类型的测试。它们面向前端+后端的集成测试。这些测试用于测试用户场景,而不是单元测试。代码覆盖率与这些测试无关(场景覆盖率为)。我们有单元测试来测试与DOM的交互(后端被截短)。我们跟踪我们的JS代码覆盖率,但我们无法跟踪我们的模板覆盖率。我理解这个问题。我目前不知道有什么解决办法。测试html是伊斯坦布尔一个有趣的开源分支。是的,它必须深入研究angular的模板系统,因为它需要在编译的模板上运行覆盖率,然后以某种方式将覆盖率映射回原始文件。不容易。