0

プロジェクトでテスト カバレッジを作成したいと考えています。私はプロファイルを作成しました:私のpom xmlプロファイルは次のとおりです:

    <profile>
        <id>test-coverage</id>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>${maven.surefire.plugin.version}</version>
                    <configuration combine.self="override">
                        <redirectTestOutputToFile>true</redirectTestOutputToFile>
                        <testFailureIgnore>true</testFailureIgnore>
                        <argLine>
                            -Xms128m -Xmx1G -XX:MaxPermSize=128M
                        </argLine>

                           <groups>com.project.test.annotation.QuickTest</groups>

                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.jacoco</groupId>
                    <artifactId>jacoco-maven-plugin</artifactId>
                    <version>0.7.1.201405082137</version>
                    <executions>
                        <execution>
                            <goals>
                                <goal>prepare-agent</goal>
                            </goals>
                        </execution>
                        <execution>
                            <id>report</id>
                            <phase>prepare-package</phase>
                            <goals>
                                <goal>report</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>

            </plugins>
        </build>

    </profile>

私はこれらのコマンドを実行しています: mvn clean install -DfailIfNoTests=false -P test-coverage mvn sonar:sonar

テストカバレッジを取得できませんでした。何が欠けていますか? 私のソナーのバージョン: 4.3

4

3 に答える 3

2

発生する主な問題はargLine、プラグインの構成ではなく、プロパティとして設定する必要があるsurefire mavenプラグインのプロパティの定義です。そうすると、JaCoCo maven プラグインは argline を設定してそのエージェントを構成できないためです。

したがって、argLine は pom のプロパティとして定義する必要があります。

詳細については、 http://docs.sonarqube.org/display/SONAR/JaCoCo+Pluginを参照してください。

于 2014-08-18T14:26:34.797 に答える
0

argline を次のように設定するだけです

<argLine>
     ${argLine} -Xms128m -Xmx1G -XX:MaxPermSize=128M
</argLine>

そうすれば、JaCoCo がそのエージェントの argLine を設定するときに、それをオーバーライドせずに、自分のものをそれに追加するだけです。

于 2016-04-13T14:40:07.403 に答える
0

jacocoリスナーをsurefireプラグインに追加できるはずです。

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-surefire-plugin</artifactId>
  <!-- Minimal supported version is 2.4 -->
  <version>2.13</version>
  <configuration>
    <properties>
      <property>
        <name>listener</name>
        <value>org.sonar.java.jacoco.JUnitListener</value>
      </property>
    </properties>
  </configuration>
</plugin>
于 2014-08-19T06:05:14.613 に答える