我目前有一个Maven Web项目,正在尝试为其编写集成测试。对于项目的结构,我已经在 src / test / java 下定义了测试存根,而这些存根的spring bean定义位于 src / test / resources下 。
我想做的是,在构建战争构件时,我希望所有测试存根类都可以编译并包含在战争中以及Spring bean定义文件。我已经尝试使用Maven War插件来做到这一点,但是我唯一能复制的就是资源。 简而言之,我想利用测试类路径并将所有这些类包括在我的war文件中。
看来带有maven jetty插件的useTestClassPath选项可以解决我的问题,但是我正在处理的当前项目当前正在使用Tomcat 6.0。是否有另一个Maven插件,或者我可以配置Maven War插件以实现我的目标的方法?
您也可以直接做到这一点。这会将测试类和测试资源都添加到WEB-INF / classs中:
<plugin> <artifactId>maven-antrun-plugin</artifactId> <version>1.7</version> <executions> <execution> <phase>process-test-classes</phase> <configuration> <target> <copy todir="${basedir}/target/classes"> <fileset dir="${basedir}/target/test-classes" includes="**/*" /> </copy> </target> </configuration> <goals> <goal>run</goal> </goals> </execution> </executions> </plugin>
我还建议您将其放在单独的配置文件(如“集成”)中,并覆盖该配置文件中的软件包名称,以免在没有打包测试和测试战争的情况下混淆正常战争。
有关配置文件的完整示例在此处。您可能会遇到mvn clean package有战争war-it-test.war,而不包括测试,或者你可能会遇到mvn clean package -Pintegration有战争war-it-test-integration.war与包括测试的战争。
mvn clean package
war-it-test.war
mvn clean package -Pintegration
war-it-test-integration.war