发布于 2020-12-11 05:06:52
让我们来看看测试覆盖率是如何工作的。它一般由两部分组成:仪器和报告。
仪器化
nyc自动检测它执行的节点进程(及其子进程)。但是,在您的示例中,要测量的实际代码是在浏览器中运行的编译的角应用程序,而不是测试运行程序本身的Node进程。
这意味着你需要自己测试你的应用程序代码。对于一个角度应用程序,它通常意味着你需要一个定制的建设者。下面是一篇伟大的文章,它解释了如何做到这一点(他们谈论的是Cypress测试--但检测部分是相同的)。或者,您可以在运行nyc instrument之前对源文件进行预处理(通过ng build )。这种方法在我搜索过的另一篇文章中有特色。
报告
如上所示的代码将跟踪它的运行度量,并以伊斯坦布尔特有的格式以window.__coverage__存储它们。但我们如何提取它呢?似乎谱没有内置的支持提取这些指标(我会很高兴了解其他,但.问题/40,问题/261)。
听起来我们最好的努力就是自己实现它。您可以从谱的window BrowserWindow (例如,在这就是答案中)访问这就是答案对象。并在每次测试后将其__coverage__属性的内容存储在文件中。您可以使用@ Cypress /code-coverage 源代码作为这种方法的示例(显然它是针对Cypress的,而不是针对谱的--但总体思路是相同的)。
https://stackoverflow.com/questions/65081321
复制相似问题