问题标签 [test-coverage]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
723 浏览

ruby-on-rails - 为什么 simplecov 不检查我的任何 Rails 视图?

我在一个新的 rails 项目上安装了 simplecov,但它没有检查视图文件。在阅读了有关此问题的其他一些帖子后,我将我的应用程序更新如下,但没有骰子。我如何让 simplecov 也测试我的观点?

规范/spec_helper.rb

配置/环境/test.rb

simplecov 不测试视图

0 投票
0 回答
344 浏览

nginx - 为在不同机器上运行的 Protractor E2E 测试生成覆盖率报告

我想针对正在运行的节点代码获取 Protractor E2E UI 测试的覆盖率报告。我尝试了以下步骤:

  • 使用伊斯坦布尔,我在我的一个
    通过 Nginx 管理的应用服务器上检测了代码。

    伊斯坦布尔乐器。--complete-copy -o 检测

  • 停止实际的节点代码,并在同一端口(端口 3000)上启动检测代码,而不更改 NGINX 配置,这样任何访问该应用服务器的流量都将被定向到
    在同一服务器上运行的检测代码。

  • 在另一台机器上运行量角器端到端测试。这是另一台本地机器,我从中运行测试,检测的应用程序位于另一台服务器中。

  • 在运行结束时,我停止了检测代码

现在: - 没有可用的覆盖变量 - 没有覆盖文件夹 - 没有生成报告

我认为如果通过量角器脚本命中检测代码,则会生成覆盖率报告。

我也四处搜索,发现了一些插件"protractor-istanbul-plugin",但不确定这是否是我应该使用的。

我的问题:

  • 如果检测的代码在不同的服务器中并且量角器脚本是从不同的机器上运行的,是否甚至可以生成覆盖率报告?
  • 如果可能的话,我假设如果检测代码被命中就会生成报告是错误的吗?
  • 我应该在这里使用istanbul cover 命令,如果是,如何?

我的目标是在部署到 QA 环境后检测代码。并触发放置在另一台机器中的量角器脚本,该脚本指向具有检测代码的 QA 环境。

提前致谢。

0 投票
1 回答
137 浏览

javascript - Chutzpah 覆盖率结果小于 100%(由于私有方法?)

我使用 Chutzpah 来测试我的 JavaScript 测试覆盖率。这是我运行单个测试文件referenceFigureEdit.spec.js时覆盖结果的示例:

在此处输入图像描述

我预计覆盖率为 100%,但只有 91.07%。

单击第一行,我可以详细检查我测试过的代码。突出显示“未包含在测试中”的行:

在此处输入图像描述

问题一

我怎样才能

  • 告诉 Chutzpah 这些方法实际上已经被执行或
  • 告诉 Chutzpah 不要在覆盖结果中包含这些行?

对于必须在何处/何时执行代码以成为成功覆盖的一部分,是否有一些限制?我在我的 it 方法中调用代表。在构建被测模块期间是否已经需要调用它们?

我测试的代码定义了一些传递给构造函数的委托方法(例如“showErrors”)(例如 new saveCommand(..., showErrors))。该委托的方法声明被突出显示并且不包括在覆盖范围内。但是,这些代表实际上是在测试期间执行的,我希望覆盖率是 100%。

即使 showErrors 委托中的代码是私有的,我也想对其进行测试(是否应该测试私有方法不是我的问题)。为了在我的测试中执行委托,我模拟了 saveCommand。模拟的 saveCommand 发布传递的委托,在测试中我明确调用它:

测试成功执行,对我来说很好。但是,覆盖结果并不像预期的那样。

问题乙

引用文件 errorhandler.js 的主要覆盖率结果显示覆盖率为 27.59%。我还没有测试 errorhandler.js。该数字是否意味着在执行我的主文件 referenceFigureEdit.js 时执行了 errorhandler.js 的现有 29 条语句中的 8 条?我的主文件直接引用errorhandler.js,但不直接引用utils.js。我在哪里可以找到一些关于如何正确解释这些“子数字”的文档以及 Total of 47.66% 的目的是什么?

0 投票
1 回答
1881 浏览

java - 如何在 Gradle 中将源代码添加到 Jacoco 报告

在 Gradle 中,当您有多个项目时,您可能希望从一个项目生成 Jacoco 测试覆盖率报告,并将其他项目的类显示在报告中。

为此,来自 Gradle 2.14 的JacocoReport 文档列出了两对指令,称为:

  • sourceDirectories&classDirectories
  • additionalSourceDirs&additionalClassDirs

但是,两者都期望单个 FileCollection 和所有项目源集和输出文件的胶水,需要调用files()onsomeJavaProjectSourceSet.srcDirs才能获得代码行级别的审计,并在报告中嵌入实际源代码。

有没有更好的办法 ?

0 投票
3 回答
173 浏览

c# - IEnumerable 的具体实现那不是ICollection

我想知道 .net 框架中实现 IEnumerable 的任何类是否不实现 ICollection 接口。

我问它是因为我无法在我编写的以下扩展方法中获得 100% 的代码覆盖率:

最后一行没有包含在我的任何测试中,我找不到正确的类来实例化以覆盖它。

我的测试代码是:

0 投票
0 回答
72 浏览

android - 启用测试覆盖会引发数据绑定错误

我有一个多模块 android 项目。使用coremain作为模块。

我在两个模块上都使用数据绑定。但是每当我尝试在核心模块项目构建上启用 testCoverage 时都会失败并出现错误

对此的任何帮助将不胜感激。

0 投票
2 回答
384 浏览

ruby-on-rails - Oauth 模型关注测试覆盖存根

我正在尝试找出在本课程中达到 100% 测试覆盖率的最佳方法。我已经概述了我的完整规格,我希望有人能指出我正确的方向。我的假设是存根 Oauth2 请求会做到这一点,但我似乎无法做到这一点。

我正在使用 Rails 4。

在此处输入图像描述

规格

更新

我将当前规格更改为:

但是,现在我收到以下错误:

0 投票
0 回答
951 浏览

android - 向 Jacoco 报告隐蔽 coverage.ec 文件

我正在尝试为我的 Android 应用程序获取代码覆盖率,我注意到当测试失败时,不会生成 jacoco 报告,只会生成 coverage.ec。

有谁知道如何将coverage.ec 文件转换为jacoco 报告?

这对我不起作用:Jacoco 将coverage.ec 转换为没有coverage.em 的报告

一切顺利!

强尼

0 投票
1 回答
1959 浏览

java - 如何使用 void 方法确保良好的测试覆盖率

在以下情况下,应该如何测试上述场景并确保良好的测试覆盖率:

  • 入口点produce()不遵守接口定义的合同,并且没有返回类型。
  • 其他方法privateMessageProducerImpl类中
  • 不允许更改界面
0 投票
0 回答
272 浏览

java - 为什么我无法使用静态方法获取 JMockit 覆盖率报告?

我需要从我的单元测试中获得一份报告。我找到并使用 JMockit 插件来模拟测试所需的不同环境。但是我发现我在模拟静态方法时无法获得覆盖率报告。模拟测试全部运行成功。请看下面的报告截图:

覆盖结果 覆盖代码行

那么我的代码有什么问题吗?也许对 JMockit 有更好经验的人可以帮助我。谢谢。

您可以从这里获取代码:

  1. Maven Pom 文件
  2. 静态源代码
  3. 测试代码