Maven - 如何包含用于集成测试的 'generic' 插件?
Maven - how to include a 'generic' plugin intended for integration tests?
我想写一个可以用于集成测试的插件。为简单起见,我们假设它是一个简单的 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>
这会让我的生活更轻松,因为我只是执行了插件而没有编写任何额外的代码。例如,插件可以根据项目的要求在生成本地 Web 容器、数据库等之后检查 GET http://localhost:8080/<some endpoint>
returns 200。
我需要 classes 的名称遵循约定 (**/IT*.java, **/*IT.java or **/*ITCase.java
),但在这种情况下如何发现和执行这些 classes?这与 Mojo 的 execute()
有什么关系?
简单地将 SomeTestIT.java
放在插件项目的 src/main/test/...
中(而不是在执行插件的项目中,就像没有插件那样)是行不通的。我不知道如何继续。
这将如何工作以及 Mojo class 中的 execute()
应该是什么样子?
作为子类 AbstractMojo
,除其他事项外,您必须重写 getDefaultIncludes()
。
return 您要包含的 ant 路径样式值:
@Override
protected String[] getDefaultIncludes() {
return new String[]{ "**/IT*.java", "**/*IT.java", "**/*ITCase.java"};
}
您应该从 github 上用于在 Maven 中执行集成测试的 maven-failsafe-plugin
源代码中汲取灵感。
我想写一个可以用于集成测试的插件。为简单起见,我们假设它是一个简单的 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>
这会让我的生活更轻松,因为我只是执行了插件而没有编写任何额外的代码。例如,插件可以根据项目的要求在生成本地 Web 容器、数据库等之后检查 GET http://localhost:8080/<some endpoint>
returns 200。
我需要 classes 的名称遵循约定 (**/IT*.java, **/*IT.java or **/*ITCase.java
),但在这种情况下如何发现和执行这些 classes?这与 Mojo 的 execute()
有什么关系?
简单地将 SomeTestIT.java
放在插件项目的 src/main/test/...
中(而不是在执行插件的项目中,就像没有插件那样)是行不通的。我不知道如何继续。
这将如何工作以及 Mojo class 中的 execute()
应该是什么样子?
作为子类 AbstractMojo
,除其他事项外,您必须重写 getDefaultIncludes()
。
return 您要包含的 ant 路径样式值:
@Override
protected String[] getDefaultIncludes() {
return new String[]{ "**/IT*.java", "**/*IT.java", "**/*ITCase.java"};
}
您应该从 github 上用于在 Maven 中执行集成测试的 maven-failsafe-plugin
源代码中汲取灵感。