首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Sonarqube6.3中使用sonar.test.exclusions

在Sonarqube6.3中使用sonar.test.exclusions
EN

Stack Overflow用户
提问于 2017-04-03 03:33:04
回答 2查看 24.1K关注 0票数 5

目前,我正在评估Sonarqube6.3(从我当前的5.5实例中进行的一次大升级),并且我在试图确定sonar.test.exclusions设置的功能时感到困惑。

有一个问题:Sonar Maven Plugin: How do I exclude test source directories?,它似乎表明它用于从分析中排除测试文件(这就是我想要的--我不希望我的声纳规则在我的单元测试中运行)。文档https://docs.sonarqube.org/display/SONAR/Narrowing+the+Focus还指出,它用于“排除单元测试文件”(也许可以对其进行扩展以使其更加清晰?)

问题是,当我添加值为**/src/test/**的sonar.test.exclusions,然后运行我的分析时,我仍然会得到代码气味之类的信息:

  • Foo/src/test/java/foo/bar/BarTest.java
  • Foo/src/test/java/lah/LahTest.java

等。

当我使用sonar.exclusions时,它们不会出现。为什么sonar.test.exclusions不做我想做的事?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-04-03 07:24:37

首先:如果您有一个Maven项目,您应该使用用于Maven (mvn sonar:sonar)的扫描器。它将简化您的配置,并自动将src/ test /java文件夹注册为测试目录。

现在,如果您想手动完成配置,或者了解引擎盖下面发生了什么,下面是解释: SonarQube扫描仪处理2组文件,主文件和测试文件。主源文件使用属性sonar.sources进行配置。使用sonar.tests配置测试源文件。

在此基础上,您可以使用sonar.test.exclusions属性过滤某些内容。

在您的情况下,您的问题是Foo/src/test/java/foo/bar/BarTest.java似乎被认为是一个主要源文件。这就是为什么sonar.test.exclusions没有效果的原因。

票数 10
EN

Stack Overflow用户

发布于 2018-08-03 09:51:16

使用具有验证目标的maven (mvn干净验证声纳:声纳安装),我使用了这种配置,没有问题:

代码语言:javascript
复制
...
<properties>
    ....
    <sonar.exclusions>
        **/generated/**/*,
        **/model/**/*
    </sonar.exclusions>
    <sonar.test.exclusions>
        src/test/**/*
    </sonar.test.exclusions>
    ....
    <sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin>
    <sonar.jacoco.reportPath>${project.basedir}/../target/jacoco.exec</sonar.jacoco.reportPath>
    <sonar.coverage.exclusions>
        **/generated/**/*,
        **/model/**/*
    </sonar.coverage.exclusions>
    <jacoco.version>0.7.5.201505241946</jacoco.version>
    ....
</properties>
....

覆盖排除配置、内部属性(up)和jacoco插件配置:

代码语言:javascript
复制
.....
<build>
    <plugins>
        <plugin>
            <groupId>org.jacoco</groupId>
            <artifactId>jacoco-maven-plugin</artifactId>
            <version>${jacoco.version}</version>
            <executions>
                <execution>
                    <id>prepare-agent</id>
                    <goals>
                        <goal>prepare-agent</goal>
                    </goals>
                </execution>
                <execution>
                    <id>report</id>
                    <phase>prepare-package</phase>
                    <goals>
                        <goal>report</goal>
                    </goals>
                </execution>
                <execution>
                    <id>post-unit-test</id>
                    <phase>test</phase>
                    <goals>
                        <goal>report</goal>
                    </goals>
                    <configuration>
                        <dataFile>target/jacoco.exec</dataFile>
                        <outputDirectory>target/jacoco-ut</outputDirectory>
                    </configuration>
                </execution>
            </executions>
            <configuration>
                <systemPropertyVariables>
                    <jacoco-agent.destfile>target/jacoco.exec</jacoco-agent.destfile>
                </systemPropertyVariables>
            </configuration>
        </plugin>
    </plugins>
</build>
....
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43176126

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档