Jacoco 是不是记录单元测试持续时间?

Posted

技术标签:

【中文标题】Jacoco 是不是记录单元测试持续时间?【英文标题】:Does Jacoco record unit test duration?Jacoco 是否记录单元测试持续时间? 【发布时间】:2017-06-02 17:03:45 【问题描述】:

您可以使用Jacoco 代理运行JUnit 测试以生成出色的覆盖率报告。 (它在单元测试的运行过程中产生一个不透明的*.exec 文件)。

Sonar 等一些工具 - 读取 *.exec 文件并收集数据以生成报告。声纳能够告诉单元测试持续时间 - 但我不确定它是否从这个 *.exec 文件中获取。

我的问题是:Jacoco 是否记录单元测试持续时间?(无论它是否在生成的报告中显示)。

【问题讨论】:

【参考方案1】:

不,JaCoCo 不记录时间。

SonarQube reads time of execution of tests from reports generated by maven-surefire-plugin.

【讨论】:

【参考方案2】:

JaCoCo 对单个 JUnit(或 TestNG 等)测试一无所知。它知道用于覆盖的类。

但是,JUnit 测试运行程序会在它为测试运行生成的 XML 输出文件中记录测试执行时间(通过 Ant junit 任务或 Maven Surefire)。使用 Ant 时,junitreport 任务会在 html 报告中显示测试执行时间。

【讨论】:

以上是关于Jacoco 是不是记录单元测试持续时间?的主要内容,如果未能解决你的问题,请参考以下文章

单元测试-代码覆盖率工具 -- JaCoCo

JaCoCo:分析单元测试覆盖率的利器

Jacoco在eclipse上的集成使用

带有 jacoco 插件的 SonarQube 覆盖百分比显示为零,但可以看到单元测试的数量

使用 Powermock 在 Sonarqube 中配置 jacoco 以进行集成和单元测试报告

使用JaCoCo统计单元测试代码覆盖率