簡體   English   中英

SonarQube中模塊的跳過代碼覆蓋率

[英]Skip Code Coverage For Modules in SonarQube

我有一個使用SonarQube分析的Maven構建的Java項目。 每個項目都包含幾個Maven模塊,例如:

  • org.acme.module -API
  • org.acme.module.demo一個演示該模塊功能的小型演示應用程序
  • org.acme.module.doc開發人員文檔
  • org.acme.module.it集成測試

在理想的情況下,我想分析所有這些模塊的代碼質量,但只計算API的測試覆蓋率。

但是我找不到從代碼覆蓋范圍禁用整個項目的方法( sonar.coverage.exclusions僅過濾類名,並且其中一些模塊與API共享一個包),所以現在我嘗試禁用這些模塊來自聲納。

我試過了:

<properties>
    <sonar.skippedModules>org.acme.module.demo,org.acme.module.doc,org.acme.module.it</sonar.skippedModules>
</properties>

哪個可行,但工作量很大,因為我有數百個這樣的項目。

<properties>
    <sonar.skip>true</sonar.skip>
</properties>

也可以使用,但是我必須為每個子模塊類似地定義它。 而且,現在Sonar不會分析文件,這很明顯是有原因的。

我寧願有類似<excludedModules>*demo*,*doc*,*it*,<excludedModules> ,我可以在父pom.xml中定義一次並在所有這些模塊中使用。

該答案指出:

您也可以從此處的“跳過模塊”部分中記錄的聲納管理頁面執行此操作。

直到我意識到SonarQube文檔不再包含“跳過模塊”部分,我才感到非常高興。 也許它已被移動,而我卻找不到。

如何在仍然運行其他Sonar測試的同時跳過多個模塊中的代碼覆蓋率分析?

還是如果不可能,如何以一種通用的方式在Sonar中跳過這些模塊?

以管理員身份登錄

轉到您的項目,您應該看到“管理”選項卡。 然后轉到Analysis Scope,然后在coverage排除項中添加排除項:

  • 的src / main / JAVA /組織/ ACME /模塊/演示/ **

在此處輸入圖片說明

在所有子/子模塊pom中,您可以添加以下內容,以僅從覆蓋率分析中排除該模塊中的所有文件。 您仍將獲得這些模塊的SonarQube分析的其余部分。

 <profiles>
    <profile>
        <id>sonar</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <properties>
            <sonar.coverage.exclusions>
                **/*.*
            </sonar.coverage.exclusions>
        </properties>
    </profile>
    </profiles>

暫無
暫無

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

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