Skip to content

ci: ускорение testfx-тестов через общий toolkit на класс - #39

Merged
vladcheck merged 3 commits into
mainfrom
ci/speedup-test-fx-37
Oct 13, 2026
Merged

vladcheck merged 3 commits into
mainfrom
ci/speedup-test-fx-37

Conversation

@vladcheck

Copy link
Copy Markdown
Owner

Что сделано

  • Новый базовый класс ui.FxTestBase: JavaFX toolkit поднимается один раз на тестовый класс через FxToolkit.registerPrimaryStage в BeforeAll (TestInstance PER_CLASS), очистка в AfterAll. Изоляция между тестами сохранена: каждый тест пересоздаёт сцену и моки в BeforeEach.
  • Переведены 5 GUI-классов с ApplicationExtension (перезапуск приложения перед каждым тестом) на FxTestBase: LoginFormControllerTest, ResourceFormControllerTest, ResourceListControllerTest, ResourceDetailsControllerTest, MockFlowTest. Тела подготовки сцены переиспользованы без изменений.
  • Посимвольный ввод robot.write заменён прямым setText через хелпер fillText: синтетические клавиши под headless Monocle идут около 90 мс на символ, а контроллеры читают поля только по кнопке (обработчиков клавиш в продуктивном коде нет).
  • Продуктивный код не менялся, только тесты.

Замеры

mvn -B test, до/после:

  • Всё: 81.6 сек / 70 тестов -> 14.3 сек / 70 тестов (все зелёные)
  • ResourceFormControllerTest: 39.3 -> 3.5 сек
  • LoginFormControllerTest: 12.8 -> 2.1 сек
  • ResourceListControllerTest: 6.8 -> 3.6 сек
  • ResourceDetailsControllerTest: 3.7 -> 2.2 сек
  • MockFlowTest: 1.1 -> 0.5 сек

mvn -B checkstyle:check и mvn -B spotless:check зелёные.

Не переведено

UI-интеграционные тесты (ResourceListIntegrationTest, ResourceFormIntegrationTest) оставлены на ApplicationExtension: они исключены из дефолтной сборки и требуют живого бэкенда, проверить их локально нельзя. Перевод отдельным изменением при поднятом бэкенде.

Интеграционные тесты с тегом integration не запускались (нет живого бэкенда).

Closes #37

@vladcheck vladcheck self-assigned this Oct 13, 2026
@vladcheck
vladcheck requested review from Deatheh and miyagi18 October 13, 2026 16:39
@vladcheck vladcheck added the CI Job or pipeline related label Oct 13, 2026
@vladcheck
vladcheck marked this pull request as draft October 13, 2026 16:47
@vladcheck
vladcheck marked this pull request as ready for review October 13, 2026 17:04
@vladcheck
vladcheck enabled auto-merge (squash) October 13, 2026 17:04
@vladcheck
vladcheck merged commit f695a72 into main Oct 13, 2026
8 checks passed
@vladcheck
vladcheck deleted the ci/speedup-test-fx-37 branch October 13, 2026 17:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CI Job or pipeline related

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Ускорить TestFX

1 participant