Создание посредника ActiveMQ не выполняется в последующих тестах, когда служба не найдена: «META-INF / services / org / apache / activemq / wireformat / default» - PullRequest
0 голосов
/ 30 апреля 2019

У меня есть несколько юнит-тестов моих верблюжьих маршрутов в разных тестовых классах. Первый тестовый класс работает нормально, последующие - с ошибкой

Service not found:'META-INF/services/org/apache/activemq/wireformat/default'

Я хочу проверить свои маршруты JMS, поэтому мне нужно запустить временного брокера activemq в моих тестах.

Я уже пытался уничтожить ресурсы посредника, которые создаю в методе @BeforeClass. Однако это, похоже, не имеет значения.

Вот как я настраиваю брокера в моих тестовых классах:

@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();
}

Я ожидаю, что это высвободит выделенные ресурсы, чтобы я мог использовать те же методы в последующих тестах для настройки и демонтажа временного посредника, но он просто выдает ошибку выше.

Как можно безопасно создать временного брокера для каждого из моих тестовых классов?

1 Ответ

0 голосов
/ 06 мая 2019

Я не знаю, пользуется ли кто-нибудь на самом деле верблюдом, так как вопрос был просмотрен целых 11 раз за 5 дней, но в любом случае вот ответ:

Это правильная настройка

@Before
public void setUp() throws Exception {
    super.setUp();
    brokerSvc = new BrokerService();
    brokerSvc.setBrokerName("TestBroker");
    brokerSvc.addConnector("tcp://localhost:61616");
    brokerSvc.start();
}

Это правильный tearDown

@After
public void tearDown() throws Exception {
    super.tearDown();
    brokerSvc.stop();
    brokerSvc = null;
}
...