目前,我们正在使用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>
答案 0 :(得分:2)
在最新版本的Java插件中,有一些规则可以检查测试,但它们是特定于测试的规则。 I.E.他们检查您的@Test
方法是否包含断言等。您只需将这些规则添加到您的个人资料中即可。
但是,如果您正在谈论运行&#34;代码规则&#34;在您的测试中,那么您最好的选择可能是定义另一个项目,其中测试被视为源。既然您已经注意到使用Maven进行此操作的困难,我会使用SonarQube Scanner进行单独的第二次分析。