Почему бегущий тест останавливается в середине этих тестов JUnit? - PullRequest
1 голос
/ 02 июля 2019

Работая над проектом Java, в одном модуле есть 670 тестов JUnit. После недавнего рефакторинга появилось странное поведение.

Что происходит, несмотря на то, что все 670 тестов запускаются и проходят нормально, когда я пытаюсь запустить все тесты в модуле (тестовый прогон JUnit распознает правильное количество тестов и начинает их запускать), он просто останавливается после теста 187:

Stopped. Tests passed: 187 of 670 tests

Я удалил все тесты и снова добавил их по группам в поисках оскорбительного теста. Кроме того, я пробовал разные комбинации тестов, чтобы увидеть, не нарушают ли определенные тесты набор тестов. Как ни странно, любые 600 тестов проходят через:

Tests passed: 600 of 600 tests

601 тестов и набор останавливается после теста 205:

Stopped. Tests passed: 205 of 601 tests

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

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

Оказывается, Я могу нажать кнопку «Повторить неудачные тесты», и она работает как кнопка «продолжить выполнение набора тестов». После этого двухэтапного процесса я могу запустить весь набор, все зеленые.

Чтобы подтвердить, что это результат фактического изменения в моей кодовой базе, а не результат аннулирования кэша, я зашел так далеко, что удалил все файлы, связанные с IDE, проверил его и собрал на новой машине со всеми новыми ОС и инструменты. Тем не менее, только измененная ветвь теперь постоянно демонстрирует это странное поведение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...