我使用maven配置文件来运行不同类型的测试(即单元,界面等)。当我尝试根据maven文档使用mvn clean install -P profile-id1,profileid2...
从命令行一次执行多个配置文件时。但是,仅配置文件之一配置的测试会执行。这是我在POM中定义配置文件的方式
<profiles>
<profile>
<id>unit-tests</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M4</version>
<configuration>
<groups>com.mypackage.UnitTest</groups>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>interface-tests</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M4</version>
<configuration>
<groups>com.mypackage.InterfaceTest</groups>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
我在命令行-Pprofile1,profile2和-Pprofile1 -Pprofile2上尝试了不同的变体,但没有一个起作用。与我定义Maven surefire插件有关吗?任何帮助将不胜感激
您可能可以执行以下操作:
test
<skip>
参数设置为类似于${skip-integration-test}
的内容。-Dskip-integration-test=false
的内容。示例大致如下:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M4</version>
<execution>
<phase>test</phase>
<configuration>
<groups>com.mypackage.UnitTest</groups>
<skip>${unit-test-skip}</skip>
</configuration>
</execution>
<execution>
<phase>test</phase>
<configuration>
<groups>com.mypackage.InterfaceTest</groups>
<skip>${interface-test-skip}</skip>
</configuration>
</execution>
</plugin>
</plugins>
</build>
<properties>
<unit-test-skip>true</unit-test-skip>
<interface-test-skip>true</interface-test-skip>
</properties>