我使用maven进行单元测试。每次我必须记住首先启动ActiveMQ,因为单元测试需要将JMS消息发送到Queue并将其用于断言。我想知道是否有一些maven插件可以自动启动ActiveMQ进行单元测试?
很短。是否可以在运行单元测试之前启动ActiveMQ。 我用Google搜索并找到了一些提示。但按照那种方式。我应该运行一个mvn命令来启动ActiveMQ,这不是自动运行单元测试的方法
先谢谢
答案 0 :(得分:3)
从java测试AMQ流的简写是连接到vm://localhost?broker.persistent=false
。
这将创建并启动一个新的代理(如果没有人正在运行)。您将不需要锅炉板代码来创建,配置和启动/停止代理。
但是,假设您没有对要测试的默认值进行重大配置更改。在这种情况下,您可能需要手动配置和启动代理。
您可以通过Junit测试中的@Before
方法启动代理来实现此目的。
即
BrokerService broker;
@Before
public void setupAMQ(){
broker = new BrokerService();
TransportConnector connector = new TransportConnector();
connector.setUri(new URI("tcp://localhost:61616"));
broker.addConnector(connector);
// More config here!
broker.start()
}
@After
public void tearDownAMQ(){
broker.stop();
}