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