我似乎无法弄清楚如何让我的 maven 项目部署然后测试,如果它没有在 glassfish 服务器上运行我想要运行的测试,它显然会失败,有人可以给我一些文档或示例如何最好地做到这一点。
谢谢。
我似乎无法弄清楚如何让我的 maven 项目部署然后测试,如果它没有在 glassfish 服务器上运行我想要运行的测试,它显然会失败,有人可以给我一些文档或示例如何最好地做到这一点。
谢谢。
我之前通过创建一个单独的模块来在多模块 maven 项目中进行测试来做到这一点。在预集成测试执行阶段使用 Cargo maven 插件部署到您的应用服务器,然后使用 maven-failsafe-plugin 将集成测试目标绑定到集成测试阶段。将您的测试类放入 src/test/java 并在所有测试类名称前加上 IT。这是我的 pom.xml 中的一个片段:
<build>
<plugins>
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<dependencies>
<dependency>
<groupId>org.glassfish.deployment</groupId>
<artifactId>deployment-client</artifactId>
<version>3.1.1</version>
</dependency>
</dependencies>
<configuration>
<container>
<type>remote</type>
<containerId>glassfish3x</containerId>
</container>
<deployables>
<deployable>
<groupId>com.foo.example</groupId>
<artifactId>example-app</artifactId>
<type>ear</type>
</deployable>
</deployables>
<configuration>
<type>runtime</type>
<properties>
<cargo.hostname>${glassfish.host}</cargo.hostname>
<cargo.glassfish.adminPort>${glassfish.adminport}</cargo.glassfish.adminPort>
<cargo.remote.username>${glassfish.username}</cargo.remote.username>
<cargo.remote.password>${glassfish.password}</cargo.remote.password>
</properties>
</configuration>
</configuration>
<executions>
<execution>
<id>deploy-cargo</id>
<phase>pre-integration-test</phase>
<goals>
<goal>deployer-redeploy</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<executions>
<execution>
<configuration>
<skip>false</skip>
</configuration>
<phase>integration-test</phase>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>