5

我在一个 Maven 项目中有两组集成测试——自动测试和手动测试。手动测试很少但很乏味 - 它们需要拔掉服务器等的插头。我想为手动测试创建一个单独的目标,所以我可以运行类似mvn manualtests运行手动测试的东西。如果您只是运行一个普通的 Maven 构建mvn install,那么应该运行自动测试。

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

4

2 回答 2

2

您也许可以为此使用配置文件: http ://maven.apache.org/guides/introduction/introduction-to-profiles.html

于 2010-07-23T09:33:21.527 回答
1

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

使用这个依赖:

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

获取源代码并查看 META-INF/plexus 中的 components.xml。在那里,定义了默认阶段和默认生命周期/阶段绑定。

创建一个覆盖这些默认阶段的插件(在它自己的 components.xml 中)并将其定义为扩展

于 2010-07-01T14:55:59.647 回答