通过在实际应用程序上运行验收测试获取jacoco报告

Evg*_*gen 3 testing acceptance-testing jacoco spring-boot sonarqube

我是声纳和雅各布的新手,所以找不到以下问题的答案

我们将使用声纳和jacoco分析我们的测试范围。

我们将要进行三种测试:单元测试,集成测试(使用spring boot测试)和验收测试,我们将在真实的应用程序实例上运行它们。我们要合并测试结果。为单元测试和集成测试生成jacoco文件不是问题,因为它们可以访问源代码。我们可以将这些报告合并在声纳中。

我的问题是可以生成与实际应用程序交互的用于接受测试的jacoco文件吗?也许您将获得如何执行此操作的链接?

目前,我最好的想法是对真实应用程序和嵌入式应用程序都运行两次验收测试,并从嵌入式应用程序中获取报告。但是也许有更好的解决方案。谢谢,

God*_*din 7

JaCoCo能够记录任何类型的Java应用程序执行-您只需要使用agent启动此应用程序,例如:

java -javaagent:jacoco-0.8.0/lib/jacocoagent.jar -cp classes Main
Run Code Online (Sandbox Code Playgroud)

默认情况下,在应用程序终止时,这将生成jacoco.exec带有执行数据的文件。还有一些方法可以从正在运行的应用程序中获取执行数据

在Internet上有很多在各种情况下使用代理的示例-例如Spring BootTomcatWeblogic等。

之后,可以使用此执行数据jacoco.exec运行时用于生成执行数据的相同类文件来生成报告。例如,使用JaCoCo命令行界面(还有Ant任务Gradle插件Maven插件):

java -jar jacoco-0.8.0/lib/jacococli.jar \
    report \
    jacoco.exec \
    --classfiles classes \
    --html report
Run Code Online (Sandbox Code Playgroud)

可以在没有源文件的情况下生成报告,但是在这种情况下,您将无法向下钻取低于方法级别的粒度:

报告

没有上课的报告

带有源文件的报告:

jacoco-0.8.0/lib/jacococli.jar \
  report \
  jacoco.exec \
  --classfiles classes \
  --html report \
  --sourcefiles src
Run Code Online (Sandbox Code Playgroud)

报告上课的来源

报告源文件

现在有关SonarQube:它执行对exec和类文件的分析,因此还要求类文件与运行时用于生成exec文件的文件相同。因此,您需要保证对与测试中完全相同的类文件执行SonarQube分析。


归档时间:

查看次数:

1804 次

最近记录:

7 年,8 月 前