创建 ActiveMQ 代理在后续测试中失败,未找到服务:'META-INF/services/org/apache/activemq/wireformat/default'
Creating ActiveMQ broker fails on subsequent tests with Service not found: 'META-INF/services/org/apache/activemq/wireformat/default'
我在不同的测试 classes 中对我的骆驼路线进行了多次单元测试。第一个测试 class 运行良好,后续测试失败
Service not found:'META-INF/services/org/apache/activemq/wireformat/default'
我想测试我的 JMS 路由,所以我必须在我的测试中启动一个临时的 activemq 代理。
我已经尝试破坏我在@BeforeClass 方法中创建的代理资源。然而,这似乎并没有什么不同。
这就是我在测试中设置代理的方式 classes:
@BeforeClass
public static void setUpClass() throws Exception {
brokerSvc = new BrokerService();
brokerSvc.setBrokerName("TestBroker");
brokerSvc.addConnector("tcp://localhost:61616");
brokerSvc.start();
}
这就是我拆解后的样子
@AfterClass
public static void teardownClass() throws Exception {
brokerSvc.stop();
brokerSvc.waitUntilStopped();
}
我希望这会释放分配的资源,以便我可以在后续测试中使用相同的方法来设置和拆除临时代理,但它只会抛出上述错误。
如何为我的每个测试 classes 安全地创建一个临时代理?
我不知道是否有人真的再使用 camel,因为这个问题在 5 天内被查看了 11 次,但无论如何这里是答案:
这是正确的设置
@Before
public void setUp() throws Exception {
super.setUp();
brokerSvc = new BrokerService();
brokerSvc.setBrokerName("TestBroker");
brokerSvc.addConnector("tcp://localhost:61616");
brokerSvc.start();
}
这是正确的拆解
@After
public void tearDown() throws Exception {
super.tearDown();
brokerSvc.stop();
brokerSvc = null;
}
我在不同的测试 classes 中对我的骆驼路线进行了多次单元测试。第一个测试 class 运行良好,后续测试失败
Service not found:'META-INF/services/org/apache/activemq/wireformat/default'
我想测试我的 JMS 路由,所以我必须在我的测试中启动一个临时的 activemq 代理。
我已经尝试破坏我在@BeforeClass 方法中创建的代理资源。然而,这似乎并没有什么不同。
这就是我在测试中设置代理的方式 classes:
@BeforeClass
public static void setUpClass() throws Exception {
brokerSvc = new BrokerService();
brokerSvc.setBrokerName("TestBroker");
brokerSvc.addConnector("tcp://localhost:61616");
brokerSvc.start();
}
这就是我拆解后的样子
@AfterClass
public static void teardownClass() throws Exception {
brokerSvc.stop();
brokerSvc.waitUntilStopped();
}
我希望这会释放分配的资源,以便我可以在后续测试中使用相同的方法来设置和拆除临时代理,但它只会抛出上述错误。
如何为我的每个测试 classes 安全地创建一个临时代理?
我不知道是否有人真的再使用 camel,因为这个问题在 5 天内被查看了 11 次,但无论如何这里是答案:
这是正确的设置
@Before
public void setUp() throws Exception {
super.setUp();
brokerSvc = new BrokerService();
brokerSvc.setBrokerName("TestBroker");
brokerSvc.addConnector("tcp://localhost:61616");
brokerSvc.start();
}
这是正确的拆解
@After
public void tearDown() throws Exception {
super.tearDown();
brokerSvc.stop();
brokerSvc = null;
}