2016-12-01 9 views
0

Чтобы успешно выполнить мои модульные тесты, я должен предоставить JVM некоторым замененным стандартным классам. Поэтому я использую следующую конфигурацию maven-surefire-plugin:Как запустить `jacoco-maven-plugin` с опцией` -Xbootclasspath/p: my.jar`?

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-surefire-plugin</artifactId> 
    <version>2.19.1</version> 
    <configuration> 
    <skipTests>${skipUTs}</skipTests> 
    <argLine>-Xbootclasspath/p:my.jar</argLine> 
    </configuration> 
</plugin> 

plugin/configuration/argLine не добавлено, ничего особенного. Но как я могу сказать, что якоко - то же самое? Jacoco не configuration/argLine :(

Я настроил плагин Maven JaCoCo следующим образом в моем pom.xml файл:.

<plugin> 
    <groupId>org.jacoco</groupId> 
    <artifactId>jacoco-maven-plugin</artifactId> 
    <version>0.7.5.201505241946</version> 
    <configuration> 
    <skip>${skipUTs}</skip> 
    <!-- NO ONE (((((
    <argLine>-Xbootclasspath/p:my.jar</argLine> 
    --> 
    </configuration> 
    <executions> 
    <execution> 
     <id>default-prepare-agent</id> 
     <goals> 
     <goal>prepare-agent</goal> 
     </goals> 
    </execution> 
    <execution> 
     <id>default-report</id> 
     <phase>prepare-package</phase> 
     <goals> 
     <goal>report</goal> 
     </goals> 
    </execution> 
    <execution> 
     <id>default-check</id> 
     <goals> 
     <goal>check</goal> 
     </goals> 
     <configuration> 
     <rules> 
      <rule implementation="org.jacoco.maven.RuleConfiguration"> 
      <element>BUNDLE</element> 
      <limits> 
       <limit implementation="org.jacoco.report.check.Limit"> 
       <counter>COMPLEXITY</counter> 
       <value>COVEREDRATIO</value> 
       <minimum>1.0</minimum> 
       </limit> 
      </limits> 
      </rule> 
     </rules> 
     </configuration> 
    </execution> 
    </executions> 
</plugin> 
+0

Возможный дубликат [Невозможно использовать jacoco JVM args и surefire JVM args вместе в maven] (http://stackoverflow.com/questions/23190107/cannot-use-jacoco-jvm-args-and-surefire-jvm-args -together-в-мавена) – Godin

ответ

1

Как указано в documentation of prepare-agent - это просто устанавливает свойство argLine, который используется по maven-surefire-plugin, и у вас есть два варианта, чтобы добавить дополнительные аргументы:

<properties> 
    <argLine>-your -extra -arguments</argLine> 
</properties> 
<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-surefire-plugin</artifactId> 
    <configuration> 
    <!-- no argLine here --> 
    </configuration> 
</plugin> 

или с помощью late property evaluation feature of maven-surefire-plugin:

<properties> 
    <!-- empty to avoid JVM startup error "Could not find or load main class @{argLine}" in case when jacoco-maven-plugin not executed --> 
    <argLine></argLine> 
</properties> 
<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-surefire-plugin</artifactId> 
    <configuration> 
    <argLine>@{argLine} -your -extra -arguments</argLine> 
    </configuration> 
</plugin>