Выполните Maven-surefire-plugin дважды с разными аргументами
Я пытаюсь запустить свои юнит-тесты через верный плагин с двумя разными аргументами. Один из них использует jacoco для подачи результатов испытаний в SonarQube, а другой - для работы в dynatrace. Я попытался поместить его в два разных тега выполнения, но, похоже, не работает должным образом. Пожалуйста, помогите мне, что я делаю не так? Ниже приведен фрагмент моего файла pom.xml:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12</version>
<configuration>
<argLine>${jacoco.ut.arg}</argLine>
<argLine>-agentpath:"C:\Program Files\dynaTrace\Dynatrace 6.3\agent\lib64\dtagent.dll"=name=JavaAgent,server=localhost:9998,optionTestRunIdJava=${dtTestrunID}</argLine>
<excludes>
<exclude>**/at/**</exclude>
<exclude>**/it/**</exclude>
</excludes>
</configuration>
</plugin>
1 ответ
Вам нужно использовать <executions/>
, Рассмотрим следующий пример:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12</version>
<!-- You could also have the configuration tag inside the execution -->
<configuration>
<argLine>${jacoco.ut.arg}</argLine>
<argLine>-agentpath:"C:\Program Files\dynaTrace\Dynatrace 6.3\agent\lib64\dtagent.dll"=name=JavaAgent,server=localhost:9998,optionTestRunIdJava=${dtTestrunID}</argLine>
<excludes>
<exclude>**/at/**</exclude>
<exclude>**/it/**</exclude>
</excludes>
</configuration>
<executions>
<execution>
<id>run-tests</id>
<phase>test</phase> <!-- or whatever phase you like -->
...
</execution>
<execution>
<id>run-jacoco</id>
<phase>test</phase> <!-- or whatever phase you like -->
<goals>...</goals>
...
</execution>
</executions>
</plugin>
Взгляните на Maven POM
казни: важно помнить, что плагин может иметь несколько целей. Каждая цель может иметь отдельную конфигурацию, возможно, даже связывать цель плагина с другой фазой. Выполнения настраивают выполнение целей плагина.