Выполните 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

казни: важно помнить, что плагин может иметь несколько целей. Каждая цель может иметь отдельную конфигурацию, возможно, даже связывать цель плагина с другой фазой. Выполнения настраивают выполнение целей плагина.

Другие вопросы по тегам