我看到詹金斯插件中的代码覆盖率为零。我在客户端服务器模式下使用 Jacoco 0.8.7。客户端是詹金斯,服务器(此处存在jaco代理jar)是一个VM。当我使用旧版本的jaco 0.7.4时,这并没有发生。
Jenkins CI日志-
18:43:34 [INFO] Executing tasks
18:43:34
18:43:34 main:
18:43:34 [echo] Generating JaCoCo Reports
18:43:34 [mkdir] Created dir: /testingService-ci-8554/workspace/job/target/coverage-report
18:43:34 [report] Loading execution data file /testingService-ci-8554/workspace/job/target/jacoco.exec
18:43:35 [report] Writing bundle 'testingService' with 4 classes
18:43:35 [INFO] Executed tasks
18:43:35 [INFO] ------------------------------------------------------------------------
18:43:35 [INFO] BUILD SUCCESS
18:43:35 [INFO] ------------------------------------------------------------------------
18:43:35 [INFO] Total time: 6.102 s
18:43:35 [INFO] Finished at: 2022-07-19T06:13:35-07:00
18:43:35 [INFO] ------------------------------------------------------------------------
18:43:36 Publishing Coverage report....
18:43:40 report /var/lib/jenkins/jobs/job/builds/34/jacoco.exec for Jacoco has met some errors: net.sf.saxon.trans.XPathException: I/O error reported by XML parser processing file:/var/lib/jenkins/jobs/job/builds/34/jacoco.exec: Invalid byte 1 of 1-byte UTF-8 sequence.
18:43:40 A total of 0 reports were found
18:43:40 [GitHub Checks] Causes for no suitable publisher found:
18:43:40 [GitHub Checks] Trying to resolve checks parameters from GitHub SCM...
18:43:40 [GitHub Checks] Job does not use GitHub SCM
18:43:40 [GitHub Checks] Trying to resolve checks parameters from Git SCM...
18:43:40 [GitHub Checks] No credentials found
18:43:40 [GitHub Checks] Job does not have valid credentials
18:43:40 [Checks API] No suitable checks publisher found.
18:43:40 [htmlpublisher] Archiving HTML reports...
18:43:40 [htmlpublisher] Archiving at BUILD level /testingService-ci-8554/workspace/job/target/coverage-report/html to /var/lib/jenkins/jobs/job/builds/34/htmlreports/Coverage_20Report
18:43:40 [JaCoCo plugin] Collecting JaCoCo coverage data...
18:43:40 [JaCoCo plugin] **/**.exec;**/classes;**/src/main/java; locations are configured
18:43:43 [JaCoCo plugin] Number of found exec files for pattern **/**.exec: 1
18:43:43 [JaCoCo plugin] Saving matched execfiles: /testingService-ci-8554/workspace/job/target/jacoco.exec
18:43:46 [JaCoCo plugin] Saving matched class directories for class-pattern: **/classes:
18:43:47 [JaCoCo plugin] - /testingService-ci-8554/workspace/job/cronus/scripts/app/classes 5 files
18:43:47 [JaCoCo plugin] - /testingService-ci-8554/workspace/job/target/classes 5 files
18:43:50 [JaCoCo plugin] Saving matched source directories for source-pattern: **/src/main/java:
18:43:50 [JaCoCo plugin] Source Inclusions: **/*.java
18:43:50 [JaCoCo plugin] Source Exclusions:
18:43:50 [JaCoCo plugin] - /testingService-ci-8554/workspace/job/Runner/tests/fixtures/SampleProjects/helixProject/functionalTests/src/main/java 1 files
18:43:50 [JaCoCo plugin] - /testingService-ci-8554/workspace/job/testingServiceService/src/main/java 4 files
18:43:50 [JaCoCo plugin] Loading inclusions files..
18:43:50 [JaCoCo plugin] inclusions: []
18:43:50 [JaCoCo plugin] exclusions: []
18:43:50 [JaCoCo plugin] Thresholds: JacocoHealthReportThresholds [minClass=0, maxClass=0, minMethod=0, maxMethod=0, minLine=0, maxLine=0, minBranch=0, maxBranch=0, minInstruction=0, maxInstruction=0, minComplexity=0, maxComplexity=0]
18:43:50 [JaCoCo plugin] Publishing the results..
18:43:50 [JaCoCo plugin] Loading packages..
18:43:50 [JaCoCo plugin] Done.
18:43:50 [JaCoCo plugin] Overall coverage: class: 0, method: 0, line: 0, branch: 100, instruction: 0
Jenkins CI插件配置是这样的。使用ant和maven组合来转储exec文件。
echo '''
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.paypal</groupId>
<artifactId>CodeCoverage</artifactId>
<version>0.0.1</version>
<build>
<plugins>
<!-- Dependencies -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<!-- Copy the ant tasks jar. Needed for ts.jacoco.report-ant . -->
<execution>
<id>jacoco-dependency-ant</id>
<goals>
<goal>copy</goal>
</goals>
<phase>process-test-resources</phase>
<inherited>false</inherited>
<configuration>
<artifactItems>
<artifactItem>
<groupId>org.jacoco</groupId>
<artifactId>org.jacoco.ant</artifactId>
<version>0.8.7</version>
</artifactItem>
</artifactItems>
<stripVersion>true</stripVersion>
<outputDirectory>${basedir}/target/jacoco-jars</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.7</version>
<executions>
<execution>
<id>default-cli</id>
<phase>post-integration-test</phase>
<goals>
<goal>dump</goal>
</goals>
<configuration>
<reset>${Reset}</reset>
<address>${jacocoAgentHost}</address>
</configuration>
</execution>
</executions>
</plugin>
<!-- Ant plugin. -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.7</version>
<executions>
<execution>
<id>report</id>
<phase>post-integration-test</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<property environment="env" />
<!-- Execute an ant task within maven -->
<echo message="Generating JaCoCo Reports" />
<taskdef name="report" classname="org.jacoco.ant.ReportTask">
<classpath path="${basedir}/target/jacoco-jars/org.jacoco.ant.jar" />
</taskdef>
<mkdir dir="${basedir}/target/coverage-report" />
<report>
<executiondata>
<fileset dir="${basedir}/target">
<include name="jacoco.exec" />
</fileset>
</executiondata>
<structure name="Raptor Coverage Project">
<group name="${env.appName}">
<classfiles>
<fileset dir="target/classes">
<exclude name=""/>
</fileset>
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="target/sources" />
</sourcefiles>
</group>
</structure>
<html destdir="${basedir}/target/coverage-report/html" />
<xml destfile="${basedir}/target/coverage-report/coverage-report.xml" />
<csv destfile="${basedir}/target/coverage-report/coverage-report.csv" />
</report>
</target>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.jacoco</groupId>
<artifactId>org.jacoco.ant</artifactId>
<version>0.8.7</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
</project>''' > jacoco_pom.xml
“1字节UTF-8序列的无效字节1
”;建议使用错误的文件格式,通常是BOM。检查使用文件是否正确。
您可以指定文件/路径/收件人/文件名.txt
。第一种可能是当存在 BOM(字节顺序标记)时您会看到的内容,这将产生错误:1 字节 UTF-8 序列的字节 1 无效。
第二个是同一个文件,没有BOM转换。
$ file jacoco.exec
jacoco.exec: Unicode text, UTF-8 (with BOM) text
$ file jacoco.exec
jacoco.exec: ASCII text
一旦你确定格式不正确,就要由你来决定如何以这种方式结束以及如何修复。很可能是在操作系统之间移动文件的转换问题。
您是在混合环境中运行还是已经从Win转移到Linux(或Mac;不知道)?
顺便说一下:Jacoco
Release 0.7.4(2015/02/26)
Release 0.8.7(2021/05/04)
包含了很多更改,从Java8到Java18支持,到maven 3的更改,从ASM 5.0.1到ASM 9.3,很难说为什么它不再接受,假设你改变的只是Jacoco版本(从来都不是一件事)。
Jacoco插件在jenkins报告中显示0%的覆盖率,但当我在本地系统中运行相同的命令时,Jacoco会正确生成报告。我正在使用以下命令: mvn-s xyz/settings.xml-f xyz/xyz/pom.xml清洁安装org.jacoco 所以当我在jenkins中运行这个命令时,它会生成错误的报告。我已经检查了它在工作区目录对应的项目在詹金斯。它显示每个项目的0%覆盖率。但是当我在本
声纳投射物。特性 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
问题内容: 我有一个Jenkins项目,对我的NodeJS项目进行SonarQube分析。我添加了对项目的依赖。在Jenkins构建配置中,首先运行一个shell脚本: 这将安装依赖项,运行测试并生成代码覆盖率报告,并生成cobertura-coverage.xml文件。 在shell脚本之后,我运行具有以下属性的代码覆盖: Jenkins作业通过SonarQube仪表板成功运行,该仪表板描述了项
Jenkins作业成功地运行了一个SonarQube仪表板,它描述了项目的各种内容,如代码行、技术债务、问题等等。但是单元测试的代码覆盖率并没有显示在SonarQube仪表板上。我确保仪表板有单元测试小部件。 我验证了工作区确实有文件。还检查了构建控制台日志,没有发现bug。我之前也尝试过使用LCOV格式推送代码覆盖率: 即使在Jenkins工作区中生成了覆盖率报告,该报告也不会发布到SonarQ
这是一个重要的可量化指标,如果代码覆盖率很高,你就可以放心的修改代码,在发版本的时候也能睡个安稳觉。否则就是拆东墙补西墙,陷入无尽的 bug 诅咒中。 那么在 OpenResty 里面如何看到代码覆盖率呢?其实很简单,使用 LuaCov 可以很方便的实现。 我们先了解下 LuaCov,这是一个针对 Lua 脚本的代码覆盖率工具,通过 luarocks 来安装: luarocks install l
索纳库贝:8.2。0.32929 声纳扫描仪:3.0。3.778 雅科科:0.8。4 jdk:1.8 mvn:3.6。三, 你想达到什么目标 我试图通过使用sonar scanner实现代码覆盖率,但在sonarqube仪表板中获得代码覆盖率0。 到目前为止,您是如何实现这一目标的 我使用https://github.com/SonarSource/sonar-scanning-examples/