Я написал интеграционные тесты, чтобы проверить выполнение нескольких граничных событий для приложения, которое использует Activiti в качестве механизма рабочего процесса. При регулярном запуске приложения Spring Boot все граничные события выполняются корректно.
В классе интеграционного теста используются следующие аннотации:
@Transactional
@RunWith(SpringRunner.class)
@ActiveProfiles("it")
@SpringBootTest(webEnvironment=SpringBootTest.WebEnvironment.RANDOM_PORT)
При запуске интеграционного теста в журнале указывается, что запускается асинхронный исполнитель hob:
[INFO ] 2018-04-26 09:58:44 [main] -- Starting up the default async job executor [org.activiti.engine.impl.asyncexecutor.DefaultAsyncJobExecutor].
[INFO ] 2018-04-26 09:58:44 [main] -- Creating thread pool queue of size 100
[INFO ] 2018-04-26 09:58:44 [main] -- Creating executor service with corePoolSize 2, maxPoolSize 10 and keepAliveTime 5000
Интеграционные тесты извлекают текущие задачи для данного процесса и выполняют несколько пользовательских задач, используя метод taskService.complete(..)
Activiti, пока не достигнут событие таймера границы.
Дата выполнения таймера устанавливается правильно, затем в журнале указывается, что событие было запущено и таймер был запланирован:
[DEBUG] 2018-04-26 09:58:55 [main] -- Setting workflow variable dueDate to Thu Apr 26 09:59:25 CEST 2018 for process 17
[DEBUG] 2018-04-26 09:58:55 [main] -- Activiti Event received: TIMER_SCHEDULED for process instance 17
Но таймер не срабатывает (TIMER_FIRED
не срабатывает).
Запуск приложения в том же профиле, что и у теста (it
), работает нормально, таймер работает как положено.
Не пропущена ли какая-либо необходимая аннотация тестового класса для включения асинхронного задания Activiti?