使用 2 个单独的 spring 应用程序上下文运行 Junit 测试用例

发布于 2024-10-20 23:21:17 字数 275 浏览 5 评论 0原文

我有一组集成 JUnit 测试用例,我想在 2 个或更多单独的 Spring 应用程序上下文下运行。应用程序上下文在配置设置和 bean 连接方面有所不同。但是,如果我使用 JUnit 类顶部的 @ContextConfiguration 注释指定应用程序上下文文件名,那么我只能针对指定的应用程序上下文运行这些测试用例一次。是否可以在不同的应用程序上下文中运行相同的 JUnit 测试用例?

另外,我有兴趣在同一测试运行 - mvn test 中为每个应用程序上下文执行一次测试用例。

I have a set of integration JUnit test cases that I want to run under 2 or more separate spring application contexts. Application contexts differ in configuration settings and bean wirings. However, if I specify the application context file name using the @ContextConfiguration annotation at the top of the JUnit classes then I am only able to run these test cases once for the specified application context. Is it possible to run the same JUnit test cases with different application contexts?

Also, I am interested to execute the test cases once for each application context in the same test run - mvn test.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

等你爱我 2024-10-27 23:21:17

将测试代码放入抽象类中,并使用具有不同 @ContextConfigurations 的子类。请参阅http: //static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/testing.html#testing-examples-petclinic

Put your test code in an abstract class and use subclasses with different @ContextConfigurations. See http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/testing.html#testing-examples-petclinic

终弃我 2024-10-27 23:21:17

您可以通过 Maven 资源过滤来使用仅包含特定上下文文件的主测试应用程序上下文文件,

例如

@ContextConfiguration("classpath:test-context.xml")

其中 src/main/resources/test-context.xml 是:

<beans>
    <import resource="${project.test.context}" />
</beans>

然后运行 ​​mvn test -Dproject.test.context=context1.xml,mvn test -Dproject .test.context=context2.xml 等。

如果这样做,您还应该在 POM 中设置默认的 Maven 属性 project.test.context

顺便说一句,如果这些是集成测试,则按照惯例,它们应该被称为 ...IT.java 而不是 ...Test.java,并且应该由故障安全运行(使用 mvn verify),不确定。

You can use a master test application context file that just includes a specific context file by using Maven resource filtering

e.g.

@ContextConfiguration("classpath:test-context.xml")

where src/main/resources/test-context.xml is:

<beans>
    <import resource="${project.test.context}" />
</beans>

Then run mvn test -Dproject.test.context=context1.xml, mvn test -Dproject.test.context=context2.xml etc.

If you do that, you should also set a default maven property project.test.context in your POM.

By the way, if these are integration tests, they should by convention be called ...IT.java rather than ...Test.java, and should be run by failsafe (using mvn verify), not surefire.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文