首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在使用角的电子应用程序中使用代码覆盖?

如何在使用角的电子应用程序中使用代码覆盖?
EN

Stack Overflow用户
提问于 2020-11-30 21:19:31
回答 1查看 461关注 0票数 3

我编写了一个电子应用程序(用TypeScript编写),通过AVA进行测试(在测试中,我使用光谱与应用程序通信)。我的应用程序的(浏览器)内容是使用角度生成的。我通过以下方式执行测试:

代码语言:javascript
复制
npm run ava

所有这些都很好!现在我想把代码覆盖放在上面。如上所述,我使用了各种不同的框架,几乎每个框架都有自己的解决方案。

  • AVA推荐纽约
  • 电子有一些用户教程使用取笑 +他们的覆盖面?
  • AFAIK引入了他们自己的覆盖范围,AFAIK只能由ng test调用,所以这也不适用了(我猜),因为我有一个电子应用程序

我试过nyc,但在它的默认配置中,它只记录“主进程”,但更重要的是应用程序的(浏览器)内容。AFAIK nyc可以对所有*.ts文件进行测试,以添加覆盖信息,但是将其与角度构建工具结合起来似乎并不容易/不可能。

解决这个问题的好办法是什么?有这方面的经验吗?

EN

回答 1

Stack Overflow用户

发布于 2020-12-11 05:06:52

让我们来看看测试覆盖率是如何工作的。它一般由两部分组成:仪器和报告。

  • 检测基本上是用附加计数器包装源代码行,每次执行代码行时都会增加计数器。
  • Reporting正在读取这些计数器,并以某种报告的形式呈现/存储。

仪器化

nyc自动检测它执行的节点进程(及其子进程)。但是,在您的示例中,要测量的实际代码是在浏览器中运行的编译的角应用程序,而不是测试运行程序本身的Node进程。

这意味着你需要自己测试你的应用程序代码。对于一个角度应用程序,它通常意味着你需要一个定制的建设者。下面是一篇伟大的文章,它解释了如何做到这一点(他们谈论的是Cypress测试--但检测部分是相同的)。或者,您可以在运行nyc instrument之前对源文件进行预处理(通过ng build )。这种方法在我搜索过的另一篇文章中有特色。

报告

如上所示的代码将跟踪它的运行度量,并以伊斯坦布尔特有的格式以window.__coverage__存储它们。但我们如何提取它呢?似乎谱没有内置的支持提取这些指标(我会很高兴了解其他,但.问题/40问题/261)。

听起来我们最好的努力就是自己实现它。您可以从谱的window BrowserWindow (例如,在这就是答案中)访问这就是答案对象。并在每次测试后将其__coverage__属性的内容存储在文件中。您可以使用@ Cypress /code-coverage 源代码作为这种方法的示例(显然它是针对Cypress的,而不是针对谱的--但总体思路是相同的)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65081321

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档