跨多个测试类的JS代码覆盖率

时间:2016-01-04 18:44:21

标签: javascript unit-testing testing code-coverage single-page-application

背景

我正在开发一个单页应用程序,其JavaScript代码库在单元级别经过了充分测试,并希望添加一个功能测试套件来验证应用程序行为更接近用户级别看到。目前,我并未考虑完整的端到端测试(我希望与后端进行存根/模拟交互),但这可能是以后的目标。

我们的构建由npm运行; gulp / grunt目前尚未使用,但随着构建复杂性的增加,可能很快就会采用。我们目前正在使用Jasmine和Blanket进行测试和覆盖,但出于这个问题的目的,我与工具无关。

目标

我想做的是生成跨两类自动化测试的综合代码覆盖率。也就是说,如果我有一行代码在功能测试期间运行但在单元测试中没有运用,那么我的报告应该仍然标记为"覆盖。" (如果我可以获得更多或更深入的关于代码如何被运用的信息,那么很好,但不是必需的。)

基本目标(因为XY problems在SO上如此常见)是为测试完整性创建强制函数("代码覆盖率必须高于X%")而不强制冗余(如如果覆盖是针对两种情况单独测量的,或者对一类测试引入错误的偏好(如果仅针对一类测试测量覆盖率可能会发生这种情况,则可能发生。)在不同情况下测试相同代码的价值很大当然,但我们资源有限,我们希望专注于能够增加最大价值的测试。

问题(S)

简短的问题是"我该怎么做?"我还没有发现任何文档或示例。我觉得答案是"只需将istanbul放在X前面,它可以运行两种测试"但是我不知道X的样子。

我想到的一些更具体的问题:

  • 是否有任何可以遵循的示例,可以跨多个类别进行全面覆盖?
  • 为了使这种测试可行,必须接受哪些限制?
  • 将单元测试和功能测试视为以不同方式运行的单独套件,我是错误的吗? (如果功能和单元测试不是单独的套件,那么问题变得微不足道,但是在逐个测试的基础上做出的区别。但这不是我以前看到的那种测试套件。 )
  • 有没有理由不这样做? (事实上​​我无法找到这样做的例子对我来说很明显。)

我非常熟悉这个类别中的工具(Karma,Mocha,Jasmine,Blanket,Istanbul等等),所以我寻找建议本身,而是一些如何实现这种配置的指导。但是,我一定很想知道某些工具是否更适合这种用途。

0 个答案:

没有答案