弹簧启动时的@IntegrationTest使得与“正常”单元测试结合运行时的协调测试失败

时间:2014-10-03 09:18:26

标签: java unit-testing spring-boot

我使用concordion进行端到端测试我的spring boot REST API。 我发现我可以通过@IntegrationTest注释让concordion测试启动我的spring应用程序。如果我手动运行1个concorion测试或所有的一致性测试,这是有效的。但是如果我包含常规单元测试(没有@IntegrationTest),那么一致性测试将失败并带有org.springframework.web.client.ResourceAccessException: I/O error on GET request for "http://localhost:8080/myrestservice":Connection refused: connect; nested exception is java.net.ConnectException: Connection refused: connect.

如果我使用@IntegrationTest注释对我的常规单元测试进行注释,则一切正常。但我想知道是否有人知道更好的方法?

编辑: 我的一致性测试和我的单元测试都有以下其他注释:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(
    classes = Application.class,
    loader = SpringApplicationContextLoader.class)
@WebAppConfiguration

1 个答案:

答案 0 :(得分:2)

我猜您在所有测试中共享了一个缓存的ApplicationContext。您可以通过更改配置源(例如添加空TestConfiguration.class)或使用配置文件(例如`@ActiveProfiles(“integration”))来更改缓存密钥。