我试图通过带有两个不同参数的sure-fire插件来运行我的单元测试。 一个使用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>
答案 0 :(得分:4)
您需要使用<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>
执行:请务必注意插件可能具有的功能 多个目标。每个目标可能都有一个单独的配置 甚至将插件的目标完全绑定到不同的阶段。 执行配置执行插件的目标。