我在一个maven项目中有两组集成测试 - 自动和手动测试。手动测试很少但很乏味 - 它们需要拉动服务器的插头等。我想为手动测试创建一个单独的目标,所以我可以运行mvn manualtests
之类的东西来运行手动测试。如果您只运行正常的maven构建mvn install
,则应运行自动测试。
我已经使用TestNG注释@Test(groups="manual"
注释了手动测试。现在的目标是拥有两个配置的surefire插件,一个运行自动测试,绑定到构建的测试阶段,另一个运行手动测试,绑定到另一个我想调用的自定义阶段{{ 1}}。似乎不可能将插件的执行绑定到不存在的阶段(即未由maven预定义的阶段)。是不是可以定义自己的阶段?
答案 0 :(得分:2)
答案 1 :(得分:1)
这应该是可能的,虽然不容易。第一步:默认情况下看看它是如何完成的。
使用此依赖项:
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-core</artifactId>
<version>${maven.version}</version>
</dependency>
获取源代码并查看META-INF / plexus中的components.xml。在那里,定义了默认阶段和默认生命周期/阶段绑定。
创建一个插件来覆盖这些默认阶段(在它自己的components.xml中)和define it as an extension