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

如何指定“Jacoco-check”的具体包?

齐琦
2023-03-14

我的项目是使用Maven构建的。我使用“Jacoco”插件来执行质量检查。

对于一个项目,我想检查在线基础上的测试覆盖率。我想只检查3个包的线路覆盖范围。我如何能指定这张支票?

我试着“包含”了一些包,但是不起作用。我还试图包含根包级别,并排除许多其他包。也不起作用。

如何检查包装 A、B 和 C?请参阅下面的示例:

<plugin>
    <groupId>org.jacoco</groupId>
    <artifactId>jacoco-maven-plugin</artifactId>
    <version>0.7.9</version>
    <executions>
      ...
      <execution>
        <id>jacoco-check</id>
        <goals>
          <goal>check</goal>
        </goals>
        <configuration>
          <rules>
            <rule>
              <element>PACKAGE</element>
              <includes>
                <include>nl.abc.xyz.package-a.**</include>
                <include>nl.abc.xyz.package-b.**</include>
                <include>nl.abc.xyz.package-c.**</include>
              </includes>
              ... 
              <limits>
                <limit>
                  <counter>LINE</counter>
                  <value>COVEREDRATIO</value>
                  <minimum>0.30</minimum>
                </limit>
              </limits>
            </rule>
          </rules>
        </configuration>
      </execution>
    </executions>
  </plugin>

共有1个答案

钱承允
2023-03-14

< code >规则的< code>includes和< code>excludes是关于对应元素的< code>name的。在<代码>的情况下

          <includes>
            <include>nl.abc.xyz.package-a.**</include>
            <include>nl.abc.xyz.package-b.**</include>
            <include>nl.abc.xyz.package-c.**</include>
          </includes>

例如,匹配名为<code>nl.abc.xyz.package-a的包。这是,但与nl.abc.xyz.package-a不匹配。

给予

< code > src/main/Java/org/example/a/a . Java

package org.example.a;

public class A {
}

src/main/java/org/example/a/B.java

package org.example.b;

public class B {
}

< code > src/test/Java/example test . Java

public class ExampleTest {
  @org.junit.Test
  public void test() {
    new org.example.a.A();
  }
}

和<code>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>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.jacoco</groupId>
        <artifactId>jacoco-maven-plugin</artifactId>
        <version>0.8.2</version>
        <executions>
          <execution>
            <id>prepare-agent</id>
            <goals>
              <goal>prepare-agent</goal>
            </goals>
          </execution>
          <execution>
            <id>report</id>
            <goals>
              <goal>report</goal>
            </goals>
          </execution>
          <execution>
            <id>check</id>
            <goals>
              <goal>check</goal>
            </goals>
            <configuration>
              <rules>
                <rule>
                  <element>PACKAGE</element>
                  <includes>
                    <include>org.example.b</include>
                  </includes>
                  <limits>
                    <limit>
                      <counter>LINE</counter>
                      <value>COVEREDRATIO</value>
                      <minimum>0.90</minimum>
                    </limit>
                  </limits>
                </rule>
              </rules>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

</project>

< code>mvn verify的执行将如预期的那样失败

[INFO] --- jacoco-maven-plugin:0.8.2:check (check) @ example ---
[INFO] Loading execution data file /private/tmp/j/target/jacoco.exec
[INFO] Analyzed bundle 'example' with 2 classes
[WARNING] Rule violated for package org.example.b: lines covered ratio is 0.00, but expected minimum is 0.90
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------

替换

 类似资料:
  • 本文向大家介绍spring如何动态指定具体实现类,包括了spring如何动态指定具体实现类的使用技巧和注意事项,需要的朋友参考一下 在写接口实现时,有时会有多个实现类。这篇文章介绍在调用时通过传入字符串来指定具体的实现类。 一.接口与实现类: 在实现类中重写了toString() 方法,可以自定义字符串,当调用时传入指定的字符串就能获取到相应的bean。  二.register书写: 三.测试类:

  • 使用NamedNativeQuery时是否可以设置namedEntityGraph? 我获取用户实体如下: 实体图: 然而,我得到以下警告: 设置了javax.persistence.fetchgraph提示,但该值不是EntityGgraph! 那么,是否可以使用命名的本机查询设置实体图? 我当前正在过滤器中为当前REST请求设置用户。我希望能够根据匹配资源方法上的注释动态地为用户获取entit

  • 问题内容: 我有一个通过自定义工具插件在Jenkins中定义的自定义工具。如果创建自由样式项目,则该选项在执行期间会正确找到并使用该工具(Salesforce DX)。 但是,我找不到通过管道文件执行相同操作的方法。我已经使用管道语法摘要生成器来获取: 我已将其放入我的阶段定义中: 但我收到一条错误消息,指出 我应该使用其他片段吗? 有关信息的完整Jenkinsfile: UPDATE 我使用此示

  • 我想在Swagger-PHP中为POST请求指定默认的JSON正文。我的注释如下所示: 如您所见,我正试图使用<code>default={}实现默认值,但Swagger UI忽略此值,并将‘string’作为默认值: 如何将“字符串”部分更改为默认的JSON对象?

  • 我有一个本体,是使用Protegé4.3.0创建的,我将使用OWL-API为指定的个体和对象属性表达式获取对象属性值(即一组对象)。

  • 问题内容: 我有这个课: 其中,和是具体的类。现在,如果我想为这种情况实现一个模块,我会这样做: 但是我想知道这是否是绑定具体类的正确方法,还是有更简单的方法。我觉得有一个更简单的方法。 编辑 只是尝试了一下,它似乎不起作用: 编辑2 似乎根本不需要绑定: 似乎也可以。 问题答案: Guice的即时绑定正是您想要的。根据您的,并满足以下要求(从Guice 文档中引用): 公共的,无参数的构造函数或