Плагин surefire не работает с плагином jacoco

Я хочу сделать тестовое покрытие в своем проекте. я создал профиль: мой профиль 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


person Bilal Yasar    schedule 18.08.2014    source источник


Ответы (3)


Основная проблема, с которой вы сталкиваетесь, — это определение свойства argLine плагина surefire maven, которое должно быть установлено как свойство, а не в конфигурации плагина. Потому что, когда вы это делаете, плагин JaCoCo maven не может установить argline для настройки своего агента.

Таким образом, argLine должен быть определен как свойство в вашем файле pom.

См. http://docs.sonarqube.org/display/SONAR/JaCoCo+Plugin для более подробной информации.

person benzonico    schedule 18.08.2014

Вы должны иметь возможность добавить прослушиватель 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>
person Niels Bech Nielsen    schedule 19.08.2014

Просто установите свой argline, чтобы он выглядел так

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

таким образом, когда JaCoCo устанавливает argLine для своего агента, вы не переопределяете его, а просто добавляете к нему свой.

person non sequitor    schedule 13.04.2016