集成测试一个camel-spring-boot路由

时间:2015-11-04 20:42:15

标签: spring-boot apache-camel

我有一个带有几条路线的camel-spring-boot应用程序。 我现在想集成测试其中一条路线。

这给了我一些问题。如果我在测试中初始化spring boot应用程序,则会自动加载所有路由。从我的.yml文件中正确读取属性。

如果我绕过spring boot应用程序并且只使用普通的单元测试框架来避免加载所有路由,则属性加载不起作用(属性根本没有初始化,我收到错误消息)。

我认为骆驼文档页面上的示例以及代码示例都有很多不足之处。我即将完全抛弃camel-spring-boot,我花了一整天时间试图让它工作。

如何为.yml文件中加载工作属性的多条路线之一创建集成测试?

1 个答案:

答案 0 :(得分:1)

我知道这已经有一年多了。但我今天遇到了这个问题。目前使用Spring boot 1.4.2和apache camel starter 2.18.0。我在@ClassRule@BeforeClass的帮助下解决了这个问题,这样我就可以生成一个临时文件夹,然后将该信息存储在系统属性中。

@RunWith(SpringRunner.class)
@ActiveProfiles("unittest")
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class AceBatchProcessorIntegrationTests
{
    @ClassRule
    public static final TemporaryFolder folder = new TemporaryFolder();

    @BeforeClass
    public static void init() throws IOException
    {
        folder.create();
        System.setProperty("ace.batch.from", "file:" + folder.getRoot().getPath() + "?include=.*.tcbatch");
        System.setProperty("ace.batch.to", "file:" + folder.getRoot().getPath() + File.pathSeparator + "done");
    }
}