如何使用Sonar检查测试质量?

时间:2015-12-04 10:21:25

标签: maven jenkins continuous-integration sonarqube sonarqube5.1

目前,我们正在使用Sonar检查生产代码的质量。我想检查测试代码的质量。

我该怎么办?

我试图更改" sonar.sources"包括测试,但在这种情况下我有一个错误:测试文件夹定义了两次,一个在测试中,一个在源中。

可能我可以配置sonar / maven / jenkins运行2分析:第一个,src代码,测试覆盖率,测试(仅质量,无覆盖)。但我还需要让所有东西都在一个jenkins工作中运行并显示在一个声纳项目中。

而且我不知道在哪里配置(pom?sonar?jenkins?)我发现了一些关于配置文件的内容,但我的版本似乎已经弃用了。

我使用Sonar 5.1,从jenkins工作开始。

我们在pom中的声纳属性是:

<project.testresult.directory>${project.build.directory}/test-results</project.testresult.directory>
<run.addResources>false</run.addResources>
<sonar-maven-plugin.version>2.6</sonar-maven-plugin.version>
<sonar.exclusions>src/main/webapp/assets/**/*.*,
src/main/webapp/bower_components/**/*.*,
src/main/webapp/dist/**/*.*</sonar.exclusions>
<sonar.jacoco.itReportPath>${project.testresult.directory}/coverage/jacoco/jacoco-it.exec</sonar.jacoco.itReportPath>
<sonar.jacoco.reportPath>${project.testresult.directory}/coverage/jacoco/jacoco.exec</sonar.jacoco.reportPath>
<sonar.java.codeCoveragePlugin>jacoco</sonar.java.codeCoveragePlugin>
<sonar.javascript.jstestdriver.reportsPath>${project.testresult.directory}/karma</sonar.javascript.jstestdriver.reportsPath>
<sonar.javascript.lcov.reportPath>${project.testresult.directory}/coverage/report-lcov/lcov.info</sonar.javascript.lcov.reportPath>

<sonar.sources>${project.basedir}/src/main/</sonar.sources>
<sonar.surefire.reportsPath>${project.testresult.directory}/surefire-reports</sonar.surefire.reportsPath>
<sonar.tests>${project.basedir}/src/test/</sonar.tests>

1 个答案:

答案 0 :(得分:2)

在最新版本的Java插件中,有一些规则可以检查测试,但它们是特定于测试的规则。 I.E.他们检查您的@Test方法是否包含断言等。您只需将这些规则添加到您的个人资料中即可。

但是,如果您正在谈论运行&#34;代码规则&#34;在您的测试中,那么您最好的选择可能是定义另一个项目,其中测试被视为源。既然您已经注意到使用Maven进行此操作的困难,我会使用SonarQube Scanner进行单独的第二次分析。