问题标签 [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 投票
3 回答
16283 浏览

c++ - 使用适用于本机 C++ 的 Visual Studio 2013 Professional 的代码覆盖率报告

将 C++ 单元测试框架与 Visual Studio 2013 Professional 结合使用,可以编写单元测试并在 IDE 中运行它们,但为了生成任何覆盖率报告,显然,需要拥有 Visual Studio 的 Premium 或 Ultimate 版。

是否可以使用专业版获得代码覆盖率报告,最好不安装任何第三方工具?如果没有,对于不使用更昂贵的 IDE 版本的人来说,还有哪些替代选择?

请注意,可以使用命令行工具生成覆盖数据,但我无法找到查看结果的方法。为方便参考,以下是覆盖统计的命令行生成步骤:

  1. /PROFILE使用链接器开关构建要测试的代码
  2. 运行vsinstr /coverage <binaryName>以检测代码;确保您在 VS 2013 命令提示符内
  3. 运行start vsperfmon -coverage -output:results以运行探查器
  4. 运行你的单元测试
  5. 通过运行停止分析器vsperfcmd -shutdown

以上将为您提供 results.coverage 文件,据我所知,如果没有 Premium 或 Ultimate 版本,就无法查看它。

0 投票
1 回答
562 浏览

php - Behat 的行为测试覆盖率

我想在 PHP 中使用 Behat 来近似测试行为的覆盖率。

显然,与代码覆盖率不同,行为覆盖率不能精确量化,但是,我们可以从一开始就知道我们计划适应哪些行为。例如,我们可能知道用户可以 1) 购买产品,2) 对产品发表评论。为此,我们需要编写两个 BDD 测试。

首先,我们可以创建占位符并使用标准的@wip 标签将每个测试标记为正在进行中。

我有两个相关的问题:

是否可以让 Behat 报告场景总数以及具有给定标签(即@wip)的场景总数?

即使您使用过滤器“~@wip”忽略这些测试,Behat 是否有可能知道该计数?

0 投票
1 回答
543 浏览

grails - 如何使用 Grails 获得测试覆盖率?

我想知道是否有一种 Grails 方法可以在我的 Grails 应用程序中找到我的测试覆盖率?

我的应用程序是使用 Intelli-J 和 spock 测试构建的。

如果还有一种方法可以显示一些图表,那就太好了!

0 投票
1 回答
62 浏览

java - 我应该为同一服务的不同分支编写不同的测试用例吗?

我有这个服务实现,测试用例是:

这个测试用例是否涵盖所有分支?我是否应该编写另一个测试用例来检查作为服务分支的用户对象(空检查)的值?

0 投票
2 回答
5016 浏览

java - 如何从 IntelliJ IDEA 的覆盖率测量中排除源代码?

在一个项目中,我有一个Utility 类,如下所示:

该类是一个实用程序类,因为它只包含static方法。因此它被声明final并且它的构造函数是private. 创建实例或派生子类根本没有任何意义。

我有一套单元测试来测试项目。我正在使用IntelliJ IDEA来运行测试、测量和可视化代码覆盖率。Utility 的构造函数class Util现在降低了覆盖率。我希望看到 100% 的 100% 逻辑覆盖率。像 Utility 类的私有构造函数这样的代码会降低覆盖率。

是否有可能(最好通过注释)将方法或构造函数标记为与代码覆盖率无关,以便从覆盖率报告中排除此类代码,从而显示 100% 的覆盖率?

我知道,一般来说,从覆盖率报告中隐藏代码对你自己不利。我不介意报告是否会有“被忽略的项目”列表 - 实际上,这会很好,以检查是否有人忽略了不应忽略的内容。关键在于覆盖范围毫无意义的代码,例如 Utility 类的私有构造函数。

我试图找出是否annotations.jar包含候选人。唯一看起来似乎可以做到的注释是TestOnly,但它并没有达到这个目的。我也四处看了plugins/coverage/lib/*.jar看,找不到候选人,但也许我只是错过了?

更新 这个问题现在已经过时了。与此同时,IntelliJ IDEA 和 Jacoco 学会了如何忽略没有调用者的私有构造函数的覆盖。我不知道有任何其他 Java 中故意无法访问的代码示例会引发从覆盖率报告中排除的对话。

更新 2 这个问题可能再次与 Java 记录类的访问器相关。

0 投票
1 回答
2029 浏览

api - Sonarqube API 单类测试覆盖率

我正在尝试通过 SonarQube API(Sonar 版本 4.1.2)检索各个类的单元测试代码覆盖率。一切正常,当我直接进入声纳仪表板并进入课程的覆盖选项卡时,我可以看到指标正常:

谁能告诉我通过声纳 API 接口检索相同/相似信息的正确调用?我已经查看了http://docs.sonarqube.org/display/SONAR/Metric+definitions上的文档,并且可以在项目级别获取测试覆盖率指标,但我看不到如何构建查询个别班级。

0 投票
2 回答
11740 浏览

android - Android Studio 中的 Jacoco 代码覆盖率

一段时间以来,我一直在尝试安静地运行 Jacoco 测试覆盖。我已经尝试了这些主题中报告的几种可能的解决方案:

使用 JaCoCo Gradle 插件的 Android 测试代码覆盖率

如何使用 Android gradle 插件 0.10.0 或更高版本获取 jacoco 覆盖率报告?

我使用 genymotion 在仿真设备中运行测试。这是我添加到 build.gradle 的内容:

要运行它,我使用类似的东西

相关生成的文件/文件夹是:

但是,没有任何 @build/reports/jacoco/test/html/index.html 或任何 html 页面/代码覆盖率报告 @/build/outputs。

我还尝试创建一个专门的任务来构建覆盖率报告:

然后./gradlew clean./gradlew jacocoTestReport。输出与上面相同,因此没有包含覆盖率报告或任何其他覆盖率文件的 html 页面。

我目前正在使用带有最新 gradle 版本的 Android Studio v1.0.2。我对 gradle 相当陌生,所以我可能在这里遗漏了一些基本的东西。

谢谢

0 投票
1 回答
21559 浏览

intellij-idea - IntelliJ - 从测试覆盖率报告中排除一些类(包)

我目前正在使用带有 Play 框架的 Java。我有 JUnit 测试,我正在尝试使用 IntelliJ 覆盖运行程序来测量覆盖率。

不幸的是,Play 生成了一些垃圾类,IntelliJ 将它们包含在报告中。有没有办法从覆盖率报告中排除某些模式?

0 投票
0 回答
1276 浏览

ant - 即使显示测试覆盖率,Sonar 中也没有显示单元测试统计信息

我们在构建过程中使用 ant。我们想获得我们项目的测试覆盖率。因此,我们将 jacoco 与声纳集成以执行测试覆盖率。测试覆盖率显示正确,但单元测试统计信息根本不显示。

在各种论坛中搜索后,我们发现它可能与 sonar.tests/sonar.binaries/sonar.junit.reportsPath 配置有关。

但即使进行了所有这些更改,我们仍然无法在 Sonar 中看到单元测试统计信息。

我们正在使用,

声纳 Qube 4.5.2 声纳蚂蚁 2.2 Jacoco 0.7.2.201409121644

请协助。

-build.xml

0 投票
1 回答
1424 浏览

java - 为什么我的分支机构覆盖率和线路覆盖率失败?

考虑以下代码:

这是方法:

当我将行更改为if (Math.abs(smu) <= 0.01)和测试类作为boolean expectedResult = true;第一个测试时,maven 构建得很好。但是当我尝试使用上面的代码构建时,maven 会抛出一个错误: [ERROR] *className failed check. Branch coverage rate of 95.8% is below 100.0% *className failed check. Line coverage rate of 97.8% is below 100.0%