1

我似乎无法弄清楚如何让我的 maven 项目部署然后测试,如果它没有在 glassfish 服务器上运行我想要运行的测试,它显然会失败,有人可以给我一些文档或示例如何最好地做到这一点。

谢谢。

4

1 回答 1

1

我之前通过创建一个单独的模块来在多模块 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>
于 2013-08-14T14:10:00.197 回答