В моей системе я использую Spring и JMS (HornetQ).
При выполнении тестов в системе некоторые из моих тестов отправляют события JMS в очередь сообщений. JMS открывает поток для каждого из этих сообщений и запускает их. Однако я должен дождаться окончания потока JMS, прежде чем я смогу перейти к следующему тесту.
Поскольку основной поток тестирования не знает, что в фоновом режиме работает другой поток, который имеет отношение к тесту, он выходит и переходит к следующему тесту до завершения потока JMS. Это превращает мою жизнь в настоящий ад, поскольку мне нужно написать хуки JMS, чтобы я мог дождаться окончания потока JMS, прежде чем я смогу двигаться дальше. Независимо от того, как я стараюсь, у меня проблемы с перехватом всех этих тем.
Что я действительно хотел бы сделать, так это чтобы событие, которое я выбрасываю в очередь сообщений, запускалось в том же потоке, в котором выполняются сами тесты. Таким образом, обработка сообщения должна быть завершена до завершения самого теста. Как я могу это сделать?
- После редактирования--
Прошло некоторое время с тех пор, как я задал этот вопрос, и до сих пор нет ответа. Неужели никто не реализовал такое простое решение для jms в тестовой среде?