spring – 如何在使用maven进行集成测试的战争中包含测试类和配置?

我目前有一个maven web项目,我正在尝试编写集成测试.对于项目的结构,我在src / test / java下定义了测试存根,而这些存根的s​​pring bean定义位于src / test / resources下.

我想做的是,当我构建我的war工件时,我希望所有的测试存根类都可以编译并包含在war中以及spring bean定义文件中.我试图用maven war插件做到这一点,但我能够复制的唯一东西就是资源.简单地说,我想使用测试类路径并在我的war文件中包含所有这些类.

似乎带有maven jetty插件的useTestClassPath选项可以解决我的问题,但我正在处理的当前项目目前正在使用Tomcat 6.0.是否有另一个maven插件或我可以配置maven war插件来实现我的目标?

解决方法:

你也可以直接做到.这会将测试类和测试资源添加到WEB-INF / classes:

        <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>

我还建议你将它放在单独的配置文件中,如“集成”,并覆盖该配置文件中的包名称,以便在没有打包测试和测试战争时无法混淆正常的战争.

配置文件的完整示例是here.您可以运行mvn clean package以获得war war-it-test.war而不包含测试,或者您可以运行mvn clean package -Pintegration来进行war war-it-test-integration.包括测试在内的战争.

上一篇:fabric智能合约模板


下一篇:OSPF的特殊区域和其他特性