1

我正在使用 pax 考试测试远程服务。

为此,我需要启动两个容器。一个本地运行我的测试,调用消费者,第二个运行服务,Aries RSA 和 zookeeper。

我设法通过在@Configuration 方法中调用它来启动外部容器。这似乎不属于那里,但它是我发现的唯一在 OSGi 之外执行代码的地方。

https://github.com/apache/aries-rsa/blob/master/itests/felix/src/test/java/org/apache/aries/rsa/itests/felix/tcp/TestRoundTrip.java#L47-L51

现在我需要在测试关闭时调用第二个钩子,然后我可以关闭容器。@After 或 @AfterClass 似乎都不能在 OSGi 中运行。

我也很高兴有一种更简洁的方式来启动外部容器,因为在 @Configuration 中添加它对我来说并不合适。

4

1 回答 1

3

我现在找到了一个解决方案,但我仍然希望有一些开箱即用的东西。

我创建了一个新的 Pax 跑步者TwoContainerPaxExam。它会查找第二个使用@ServerConfiguration 注释的配置,在测试之前启动它并在测试之后将其关闭。

所以我的测试现在看起来像这个TestRoundTrip。如果没有开箱即用的东西,我会尝试将此解决方案放入 pax 考试中。

于 2016-06-22T15:45:01.507 回答