第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何配置多模塊Maven + Sonar + JaCoCo以提供合并的覆蓋率報告?

如何配置多模塊Maven + Sonar + JaCoCo以提供合并的覆蓋率報告?

我已經(jīng)在互聯(lián)網(wǎng)上上下搜索了這個。與Maven屬性(例如${sonar.jacoco.reportPath},或org.jacoco:jacoco-maven-plugin:prepare-agent或通過設(shè)置)maven-surefire-plugin argLine有關(guān)的答案很多-javaagent。這些答案,無論是單獨(dú)還是組合使用,都不怎么產(chǎn)生我的期望:覆蓋率報告,如果在更高級別的測試中使用了某個類(例如正在使用的實體),則該類將覆蓋該類由DAO負(fù)責(zé),即使它自己的模塊中的測試并未完全涵蓋它。請問某處是否有明確的配置來實現(xiàn)這一目標(biāo)?
查看完整描述

3 回答

?
慕的地8271018

TA貢獻(xiàn)1796條經(jīng)驗 獲得超4個贊

我和您處在同一情況下,分散在整個互聯(lián)網(wǎng)上的一半答案很煩人,因為似乎很多人都遇到了同樣的問題,但是沒有人會費(fèi)心去解釋他們是如何解決的。


該聲納的文檔是指 一個GitHub的項目,例子是有幫助的。我要解決的問題是將集成測試邏輯應(yīng)用于常規(guī)單元測試(盡管正確的單元測試應(yīng)特定于子模塊,但并非總是如此)。


在父pom.xml中,添加以下屬性:


<properties>

    <!-- Sonar -->

    <sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin>

    <sonar.dynamicAnalysis>reuseReports</sonar.dynamicAnalysis>

    <sonar.jacoco.reportPath>${project.basedir}/../target/jacoco.exec</sonar.jacoco.reportPath>

    <sonar.language>java</sonar.language>

</properties>

這將使Sonar拾取同一位置(父項目中的目標(biāo)文件夾)中所有子模塊的單元測試報告。它還告訴Sonar重用手動運(yùn)行的報告,而不是滾動自己的報告。我們只需將jacoco-maven-plugin放置在build / plugins內(nèi)的父pom中,即可為所有子模塊運(yùn)行:


<plugin>

    <groupId>org.jacoco</groupId>

    <artifactId>jacoco-maven-plugin</artifactId>

    <version>0.6.0.201210061924</version>

    <configuration>

        <destFile>${sonar.jacoco.reportPath}</destFile>

        <append>true</append>

    </configuration>

    <executions>

        <execution>

            <id>agent</id>

            <goals>

                <goal>prepare-agent</goal>

            </goals>

        </execution>

    </executions>

</plugin>

destFile將報告文件放置在Sonar會查找的位置,并將append其添加到文件中,而不是覆蓋它。這會將所有JaCoCo報告合并到同一文件中的所有子模塊。


Sonar將為每個子模塊查看該文件,因為這就是我們在上面指出的內(nèi)容,因此我們可以為Sonar中的多模塊文件提供組合的單元測試結(jié)果。



查看完整回答
反對 回復(fù) 2019-12-11
?
忽然笑

TA貢獻(xiàn)1806條經(jīng)驗 獲得超5個贊

自0.7.7版以來的新方法

從0.7.7版開始,有一種新方法可以創(chuàng)建匯總報告:


您創(chuàng)建一個單獨(dú)的“報告”項目,該項目將收集所有必要的報告(聚合器項目中的任何目標(biāo)均在其模塊之前執(zhí)行,因此無法使用)。


aggregator pom

  |- parent pom

  |- module a

  |- module b

  |- report module 

該根POM看起來是這樣的(不要忘了在模塊添加新的報表模塊):


<build>

<plugins>

  <plugin>

    <groupId>org.jacoco</groupId>

    <artifactId>jacoco-maven-plugin</artifactId>

    <version>0.7.8</version>

    <executions>

      <execution>

        <id>prepare-agent</id>

        <goals>

          <goal>prepare-agent</goal>

        </goals>

      </execution>

    </executions>

  </plugin>

</plugins>

每個子模塊的poms根本不需要更改。報表模塊中的pom 如下所示:


<!-- Add all sub modules as dependencies here -->

<dependencies>

  <dependency>

    <module a>

  </dependency>

  <dependency>

    <module b>

  </dependency>

 ...

  <build>

    <plugins>

      <plugin>

        <groupId>org.jacoco</groupId>

        <artifactId>jacoco-maven-plugin</artifactId>

        <version>0.7.8</version>

        <executions>

          <execution>

            <id>report-aggregate</id>

            <phase>verify</phase>

            <goals>

              <goal>report-aggregate</goal>

            </goals>

          </execution>

        </executions>

      </plugin>

    </plugins>

  </build>

完整的示例可以在這里找到。



查看完整回答
反對 回復(fù) 2019-12-11
  • 3 回答
  • 0 關(guān)注
  • 623 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號