我们有一个多模块Maven项目,并使用JaCoCo进行代码覆盖率分析。我准备了pom
文件来运行测试用例并获取代码覆盖率。
下面是我的pom.xml
,添加了JaCoCo和其他插件,并且在Azure Devops构建中,在Maven任务中传递命令clean install sonar:sonar
,尝试clean test sonar:sonar
,参数-dsonar.coverage.JaCoCo.xmlreportpaths=target/site/jacoco-ut
在pom.xml
中定义。
我在日志中看到以下细节。
Maven日志:
分析完成日志:
测试运行:
<plugins>
<!--Jacoco Maven Plugin -->
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.7-SNAPSHOT</version>
<executions>
<!--
Prepares the property pointing to the JaCoCo runtime agent which
is passed as VM argument when Maven the Surefire plugin is executed.
-->
<execution>
<id>pre-unit-test</id>
<goals>
<goal>prepare-agent</goal>
</goals>
<configuration>
<!-- Sets the path to the file which contains the execution data. -->
<destFile>${project.build.directory}/coverage-reports/jacoco-ut.exec</destFile>
<!--
Sets the name of the property containing the settings
for JaCoCo runtime agent.
-->
<propertyName>surefireArgLine</propertyName>
</configuration>
</execution>
<!--
Ensures that the code coverage report for unit tests is created after
unit tests have been run.
-->
<execution>
<id>post-unit-test</id>
<phase>test</phase>
<goals>
<goal>report</goal>
</goals>
<configuration>
<!-- Sets the path to the file which contains the execution data. -->
<dataFile>${project.build.directory}/coverage-reports/jacoco-ut.exec</dataFile>
<!-- Sets the output directory for the code coverage report. -->
<outputDirectory>${project.reporting.outputDirectory}/jacoco-ut</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<!-- Maven ant plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>3.0.0</version>
</plugin>
<!-- Maven Surefire Plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M5</version>
<configuration>
<!-- Sets the VM argument line used when unit tests are run. -->
<argLine>${surefireArgLine}</argLine>
<!-- Skips unit tests if the value of skip.unit.tests property is true -->
<skipTests>${skip.unit.tests}</skipTests>
<!-- Excludes integration tests when unit tests are run. -->
<excludes>
<exclude>**/IT*.java</exclude>
</excludes>
</configuration>
</plugin>
<!-- Sonar Maven Plugin -->
<plugin>
<groupId>org.sonarsource.scanner.maven</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>3.7.0.1746</version>
</plugin>
目标:“清洁验证声纳:声纳”
选项:'-dsonar.projectkey=**-dsonar.organization=**
-dsonar.host.url=https://sonarcloud.io-dsonar.login=**
PublishJUnitResults:
CodeOverageToolOption:“Jacoco”
CodeOverageClassFilesDirectories:“core/target/classes,/core/target/test-classes”
MavenDirectory:“/usr/local/apache-maven/apache-maven-3.6.3/'
MavenSetm2Home:false
MavenOptions:'-xmx3072m'
SQMavenPlugInversionChoice:“POM”
经过几次更改后,我可以看到Jacoco报告被选中,但无法看到代码覆盖率
传感器JaCoCo XML报表导入html" target="_blank">程序[JaCoCo]
[报告]编写包含338个类的捆绑包“Jacoco报告”
[信息]已执行的任务
[信息]----------------------------------------------------------------------------------------------------------------------------------------------------------------
[信息]--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
请检查您是否按照以下步骤配置了Azure管道:
如果问题仍然存在,为了让我们进一步调查这个问题,请分享一个示例来展示您的Azure管道的详细配置。您可以将管道定义导出为YAML文件,不要忘记在YAML文件中屏蔽或隐藏您的私人信息。
我注意到关于Maven任务的文档中的参数“Run SonarQube或SonarCloud Analysis”(SQAnalysisEnabled
)的描述:
因此,正如我上面提到的,请确保在管道中的Maven任务之前添加了Prepare Analysis Configuration任务。
声纳投射物。特性 sonar.projectname=test sonar.language=js sonar.sources=src sonar.tests=src/app/client/src/app/sonar.javascript.lcov.reportpaths=src/app/client/src/app/sonar.javascript.lcov.reportpaths=src/ap
我已经为我的。NET核心项目在Azure Devops中使用。带有SonarCloud模板的NET Core。当我构建时,分析在SonarCloud中运行,但代码覆盖率为0%(我的解决方案中有测试)。 无论我对构建做什么配置调整,我都不能让代码覆盖工作。 我错过了什么? 我看到了这篇文章,https://dejanstojanovic . net/aspnet/2019/may/publishin
我正试图用声纳和詹金斯来覆盖代码。我看到Jenkins的Sonar插件成功地执行JUnit测试用例并成功完成构建。但Sonar不会在项目上显示代码覆盖率结果(始终显示代码覆盖率为0.0%)。但声纳显示“单元测试成功”。 我用Maven和Jenkins还有Sonar 我在执行声纳插件时,在Jenkins日志中得到以下消息: 有谁能帮助我在任何声纳项目中获得正确的代码覆盖率吗。
代码覆盖是查找未被测试执行的代码区域的过程。不过要记住的是这并不能说明你测试代码的有效性。 在requirements.txt文件中添加依赖包: coverage==4.4.2 然后,我们在manage.py中新增一个命令: import coverage COV = coverage.coverage( branch=True, include='project/*',
这是一个重要的可量化指标,如果代码覆盖率很高,你就可以放心的修改代码,在发版本的时候也能睡个安稳觉。否则就是拆东墙补西墙,陷入无尽的 bug 诅咒中。 那么在 OpenResty 里面如何看到代码覆盖率呢?其实很简单,使用 LuaCov 可以很方便的实现。 我们先了解下 LuaCov,这是一个针对 Lua 脚本的代码覆盖率工具,通过 luarocks 来安装: luarocks install l
我们在项目的模块P中有一个接口。我们正在使用maven构建代码。界面如下 在类中重写,并使用模块Q的注释来实现。maven构建工作正常很多天了。 我为这个界面添加了一个新方法 我已经用注释覆盖了Class中的这个方法,并执行了构建。构建抛出错误 方法不会重写或实现超类型中的方法 我已经正确添加了模块的配置。我正在使用Java1.8。请让我知道缺少任何配置。 在这个链接中也发现了同样的错误。 我也尝