我有一个带有几条路线的camel-spring-boot应用程序。 我现在想集成测试其中一条路线。
这给了我一些问题。如果我在测试中初始化spring boot应用程序,则会自动加载所有路由。从我的.yml文件中正确读取属性。
如果我绕过spring boot应用程序并且只使用普通的单元测试框架来避免加载所有路由,则属性加载不起作用(属性根本没有初始化,我收到错误消息)。
我认为骆驼文档页面上的示例以及代码示例都有很多不足之处。我即将完全抛弃camel-spring-boot,我花了一整天时间试图让它工作。
如何为.yml文件中加载工作属性的多条路线之一创建集成测试?
答案 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");
}
}