当前位置: 首页 > 知识库问答 >
问题:

如何在单个jenkins作业中使用maven生成Jacoco和Sco平均值报告

严宏旷
2023-03-14

我有一个java和scala的多模块项目。这两个Jacoco插件和Sco平均值都安装在Jenkins中,我想在Jenkins中的单个构建作业中生成Jacoco和Sco平均值报告(两者),但只有一个报告正在生成,无论是Jacoco还是Sco平均值。

下面的mvn命令尝试到目前为止-

mvn-B-s$MVN_SETTINGSJacoco:准备代理安装平均:报告Jacoco:报告

mvn -B -s $MVN_SETTINGS jacoco:prepare-agent install jacoco:report scoverage:report

我pom文件的片段-

Plugins section -
<plugins>
    <plugin>
        <groupId>org.jacoco</groupId>
        <artifactId>jacoco-maven-plugin</artifactId>
        <version>0.7.9</version>
        <configuration>
            <destFile>./target/jacoco.exec</destFile>
            <append>true</append>
        </configuration>
        <executions>
            <execution>
                <id>default-prepare-agent</id>
                <goals>
                    <goal>prepare-agent</goal>
                </goals>
            </execution>
            <execution>
                <id>default-report</id>
                <phase>prepare-package</phase>
                <goals>
                    <goal>report</goal>
                </goals>
            </execution>
        </executions>
    </plugin>
    <plugin>
        <groupId>org.scoverage</groupId>
        <artifactId>scoverage-maven-plugin</artifactId>
        <version>1.3.0</version>
        <configuration>
            <scalaVersion>2.10.4</scalaVersion>
            <highlighting>true</highlighting>
            <aggregate>true</aggregate>
        </configuration>
    </plugin>
</plugins>

Reporting section - 
<reporting>
    <outputDirectory>${project.build.directory}/site</outputDirectory>
    <plugins>
        <plugin>
            <groupId>org.scoverage</groupId>
            <artifactId>scoverage-maven-plugin</artifactId>
            <version>1.3.0</version>
            <configuration>
                <aggregate>true</aggregate>
            </configuration>
            <reportSets>
                <reportSet>
                    <reports>
                        <report>report</report>
                    </reports>
                </reportSet>
            </reportSets>
        </plugin>
        <plugin>
        </plugins>
    </reporting>

当我使用-mvn-B-s$mvn_设置时,jacoco:prepare agent install scoverage:report jacoco:report

生成jacoco报告

构建日志-

05:30:51[编译][INFO]---Scoalage-maven-plugin: 1.3.0: Report(default-cli)@ABC--- 05:30:51[编译][INFO]阅读Scoale-Pipeline[/workspace/Build-Pipeline/ABC/Target/Scoale-data/scoverage.coverage.xml]...05:30:51[编译][INFO]读取平均得分测量[/workspace/Build-Pipeline/ABC/Target/Scoage-data/scoverage.measurements.*]...05:30:51[编译][信息]生成覆盖报告...05:30:51[编译][INFO]书面Cobertura XML报告[/workspace/Build-Pipeline/ABC/Target/cobertura.xml] 05:30:52[编译][INFO]书面XML覆盖报告[/workspace/Build-Pipeline/ABC/Target/scoverage.xml] 05:30:53[编译][INFO]书面超文本标记语言覆盖率报告[/workspace/Build-Pipeline/ABC/Target/site/Sco平均值/index.html] 05:30:53[编译][INFO]语句覆盖率。:0.00% 05:30:53[编译][INFO]分支覆盖率......:0.00% 05:30:53[编译][INFO]覆盖报告完成。

当我使用-

mvn-B-s$MVN_SETTINGSJacoco:准备代理安装Jacoco:报告平均:报告

生成平均得分报告

构建日志-

05:15:07[Compile][INFO]---Scoalage-maven-plugin: 1.3.0: Report(default-cli)@ABC--- 05:15:07[Compile][INFO]Reading Sco平均值检测[/workspace/Build-Pipeline/ABC/Target/Scoalage-data/scoverage.coverage.xml]...05:15:07[编译][INFO]读取平均得分测量值[/workspace/Build-Pipeline/ABC/Target/Scoage-data/scoverage.measurements.*]...05:15:07[编译][信息]生成覆盖报告...05:15:07[编译][INFO]书面Cobertura XML报告[/workspace/Build-Pipeline/ABC/Target/cobertura.xml] 05:15:08[编译][INFO]书面XML覆盖报告[/workspace/Build-Pipeline/ABC/Target/scoverage.xml] 05:15:08[编译][INFO]书面超文本标记语言覆盖率报告[/workspace/Build-Pipeline/ABC/Target/site/Sco平均值/index.html] 05:15:08[编译][INFO]语句覆盖率。:0.00% 05:15:08[编译][INFO]分支覆盖率......:0.00% 05:15:08[编译][INFO]覆盖报告完成。

有人能告诉我出了什么问题吗?

非常感谢

共有1个答案

萧安怡
2023-03-14

给定src/main/java/HelloJava。java

class HelloJava {
  public static String msg() {
    return "Hello";
  }
}

src/main/scala/HelloScala。scala

object HelloScala {
  def msg = {
    "Hello"
  }
}

src/test/java/HelloTest.java

import org.junit.Test;
import static org.junit.Assert.assertEquals;

public class HelloTest {
  @Test
  public void test() {
    assertEquals("Hello", HelloJava.msg());
    assertEquals("Hello", HelloScala.msg());
  }
}

pom。xml

<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>org.example</groupId>
  <artifactId>example</artifactId>
  <version>0.0.1-SNAPSHOT</version>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>
    <dependency>
      <groupId>org.scala-lang</groupId>
      <artifactId>scala-library</artifactId>
      <version>2.11.6</version>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>build-helper-maven-plugin</artifactId>
        <version>3.0.0</version>
        <executions>
          <execution>
            <id>add-source</id>
            <phase>generate-sources</phase>
            <goals>
              <goal>add-source</goal>
            </goals>
            <configuration>
              <sources>
                <source>src/main/scala</source>
              </sources>
            </configuration>
          </execution>
          <execution>
            <id>add-test-source</id>
            <phase>generate-sources</phase>
            <goals>
              <goal>add-test-source</goal>
            </goals>
            <configuration>
              <sources>
                <source>src/test/scala</source>
              </sources>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>net.alchim31.maven</groupId>
        <artifactId>scala-maven-plugin</artifactId>
        <version>3.4.4</version>
        <executions>
          <execution>
            <goals>
              <goal>compile</goal>
              <goal>testCompile</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.jacoco</groupId>
        <artifactId>jacoco-maven-plugin</artifactId>
        <version>0.8.2</version>
        <executions>
          <execution>
            <goals>
              <goal>prepare-agent</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.scoverage</groupId>
        <artifactId>scoverage-maven-plugin</artifactId>
        <version>1.1.1</version>
        <configuration>
          <highlighting>true</highlighting>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>

执行mvn清洁测试jacoco:report平均值:report

将生成target/site/jacoco/index。html

目标/站点/平均/index.html

 类似资料:
  • 我在单元测试用例中使用Mockito和Power Mockito。当我运行配置文件代码时,我能够生成jacoco报告,但是 当我在测试阶段试图生成Jacoco报告时,我遇到了错误 错误[错误]无法执行目标组织。jacoco:jacoco maven插件:0.8.2:project testproject api上的报告(默认报告):生成jacoco报告时出错:创建报告时出错:分析d:\worksp

  • 我试图设置为我的项目的代码覆盖 我的项目基于 下面是我项目的 然后我运行并看到以下内容 然后我运行,我看到 问题 -配置中有什么不正确 -如何生成报告? 谢啦

  • mvn构建站点时不会生成Jacoco报告。 jacoco报告是在我的目标文件夹target\site\jacoco中生成的,但是不知何故,当我尝试构建jar站点时,我看不到“项目报告”下的“Jacoco测试”选项 在生成站点时,我在日志中看到的唯一内容如下: 我正在使用命令 mvn 全新安装站点 这是我如何在构建部分的pom.xml中配置Jacoco: 雅各插件被称为: 我不确定是什么导致了这个问

  • 问题内容: 我的表每隔十分钟就有一次数据: 是否可以为MySQL制定一个SQL查询,每小时返回一系列平均值? 在这种情况下,它应该返回: 问题答案: 尚不清楚是否要在几天内汇总平均值。 如果您希望26号午夜与27号午夜的平均值不同,则可以修改Mabwi的查询: 请注意该子句中的其他内容。没有这个,查询将把从到的所有数据平均在一起,而不考虑它发生的日期。

  • 我们使用自定义doclet从自定义javadoc标记生成报告,并使用Maven站点插件和javadoc插件生成此报告和常规java API文档。 POM的部分如下所示: 在Maven 2下,这可以正常工作,但在Maven 3中只生成一个报告,这是POM中指定的最后一个报告(通过交换元素来分配)。 经过一些实验,我发现如果我将常规报告的目标从“javadoc”更改为“test javadoc”,那么