【发布时间】:2018-04-05 13:16:22
【问题描述】:
我想编写一个可用于集成测试的插件。为简单起见,我们假设它是一个简单的 MOJO:
@Mojo(name = "test", defaultPhase = LifecyclePhase.INTEGRATION_TEST)
public class IntegrationTestPlugin extends AbstractMojo {
public void execute() {
...
}
}
这个插件可以从另一个项目中调用:
<plugin>
<groupId>my.group.id</groupId>
<artifactId>my.artifact.id</artifactId>
<executions>
<execution>
<goals>
<goal>test</goal>
</goals>
</execution>
</executions>
</plugin>
这会让我的生活更轻松,因为我只是执行了插件而无需编写任何额外的代码。举例来说,插件可以检查 GET http://localhost:8080/<some endpoint> 在根据项目要求生成本地 Web 容器、数据库之后是否返回 200。
我需要名称符合约定 (**/IT*.java, **/*IT.java or **/*ITCase.java) 的类,但是在这种情况下如何发现和执行这些类?这与 Mojo 的 execute() 有什么关系?
简单地将SomeTestIT.java 放在插件项目的src/main/test/... 中(而不是在执行插件的项目中,就像没有插件一样)是行不通的。我不知道如何继续。
这将如何工作以及 Mojo 类中的 execute() 应该是什么样的?
【问题讨论】:
-
看过 maven-failsafe-plugin 了吗?
-
@khmarbaise 还没有,但肯定会。我认为这样的插件与我的问题无关,因为在这个插件中,测试用例(
**/*IT.java等)在插件之外。我想把它们放在插件里。
标签: java maven junit integration-testing maven-plugin