2010-06-27 64 views
5

我有两个集成测试在一个maven项目 - 自动和手动测试。手动测试很少但是单调乏味 - 它们需要拉动服务器的插件等。我想为手动测试创建一个单独的目标,因此我可以运行诸如mvn manualtests之类的程序来运行手动测试。如果你只运行一个正常的maven build mvn install左右,应该运行自动测试。Maven - 添加自定义阶段来执行与其他配置插件

我已经标注了TestNG的注释@Test(groups="manual"手动测试。目标是现在有两个配置的surefire插件,一个运行绑定到构建测试阶段的自动测试,另一个运行手动测试,绑定到另一个我想称为manualtests的自定义阶段。看起来好像不可能将插件的执行绑定到不存在的阶段(即未由maven预定义的阶段)。难以定义你自己的阶段吗?

回答

1

这应该是可能的,虽然不容易。第一步:看看它是如何默认完成的。

使用这种依赖性:

<dependency> 
    <groupId>org.apache.maven</groupId> 
    <artifactId>maven-core</artifactId> 
    <version>${maven.version}</version> 
</dependency> 

得到的来源和看一看META-INF /丛内的components.xml。在那里,定义了默认阶段和默认生命周期/阶段绑定。

创建一个覆盖这些默认阶段(在它自己的components.xml)插件和define it as an extension

+0

不容易的...也许一个可以制作一个可以根据插件配置动态添加生命周期的插件。我会仔细看看的。 – 2010-07-02 14:31:57