簡體   English   中英

如何使用Sonar檢查測試質量?

[英]How to check test quality with Sonar?

當前,我們正在使用Sonar來檢查生產代碼的質量。 我也想檢查測試代碼的質量。

我該怎么做 ?

我試圖更改“ sonar.sources”以包括測試,但是在這種情況下,我有一個錯誤:測試文件夾定義了兩次,一個在測試中,一個在源中。

可能是我可以配置sonar / maven / jenkins來運行2個分析:第一個是src代碼,具有測試覆蓋率,而不是測試(僅質量,無覆蓋率)。 但是我還需要使所有事情在單個詹金斯工作中運行並在單個Sonar項目中顯示。

而且我不知道在哪里配置(POM,聲納,Jenkins?),我發現了一些有關配置文件的信息,但是我的版本似乎不建議使用。

我正在使用Sonar 5.1,它是從詹金斯工作中運行的。

我們在pom中的Sonar屬性是:

<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>

在Java插件的最新版本中,有一些規則可以檢查測試,但是它們是特定於測試的規則。 IE他們檢查您的@Test方法是否包含斷言&etc。 您只需要將這些規則添加到您的個人資料即可。

但是,如果您正在談論在測試上運行“代碼規則”,那么最好的選擇可能是定義另一個將測試視為源的項目。 既然您已經注意到使用Maven這樣做的困難,那么我將使用SonarQube Scanner進行此單獨的第二次分析。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM