Граничное событие Activiti не запускается в интеграционных тестах Spring Boot - PullRequest
0 голосов
/ 26 апреля 2018

Я написал интеграционные тесты, чтобы проверить выполнение нескольких граничных событий для приложения, которое использует 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?

1 Ответ

0 голосов
/ 26 апреля 2018

Какую версию вы используете? Почему у вас есть аннотация @Transactional? Это интеграционный тест, означающий, что приложение весенней загрузки будет запущено, и вы протестируете его как клиента, там нет транзакций, верно? Если я не пропустил что-то из вашей настройки.

...