Как устранить неполадки @SpringBootTest, приводящие к «Тесты не найдены для данных включений»? - PullRequest
0 голосов
/ 11 марта 2020

Я работаю над тестом SpringBoot, который не запускает ни одного тестового примера, очевидно, как побочный эффект изменения контекста springboot с помощью дополнительных bean-компонентов.

Изначально тестовые случаи из CreateServiceKeyBindingComponentTest правильно определяются идеей 2019.3 / gradle 6.0.1 / junit 5.5.2 / springboot 2.2.4 и правильно выполняются.

С некоторыми дополнительными bean-компонентами, загруженными в контексте, см. diff из commit 33ead9 , неожиданно проваливается тест со следующим сообщением, и не обнаружен тестовый случай

> Task :spring-cloud-app-broker-integration-tests:testClasses UP-TO-DATE
> Task :spring-cloud-app-broker-integration-tests:test FAILED
Test result: SUCCESS
Test summary: 0 tests, 0 succeeded, 0 failed, 0 skipped
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':spring-cloud-app-broker-integration-tests:test'.
> No tests found for given includes: [org.springframework.cloud.appbroker.integration.CreateServiceKeyBindingComponentTest](filter.includeTestsMatching)

Какие этапы устранения неполадок можно использовать в gradle / junit / springboot- контекст для исправления такого неожиданного симптома «Тесты не найдены»?

Это похоже на @ SpringBootTest, в результате чего 'Не найдено ни одного теста, включающего' , который не предоставил диагностику

Я попробовал следующие подходы без удачи

0 - остановка intellij и проверка, что демон gradle все еще не работал, до перезапуск intellij

1 - указание --debug в аргументе gradle для получения результатов отладки не предоставило полезных журналов

2020-03-11T18:07:07.042+0100 [DEBUG] [TestEventLogger] Gradle Test Run :spring-cloud-app-broker-integration-tests:test STARTED
2020-03-11T18:07:07.052+0100 [QUIET] [system.out] 
2020-03-11T18:07:07.052+0100 [QUIET] [system.out] Test result: SUCCESS
2020-03-11T18:07:07.052+0100 [QUIET] [system.out] Test summary: 0 tests, 0 succeeded, 0 failed, 0 skipped
2020-03-11T18:07:07.052+0100 [QUIET] [system.out] 
2020-03-11T18:07:07.053+0100 [QUIET] [system.out] </event></ijLog>
2020-03-11T18:07:07.053+0100 [DEBUG] [TestEventLogger] 
2020-03-11T18:07:07.053+0100 [DEBUG] [TestEventLogger] Gradle Test Run :spring-cloud-app-broker-integration-tests:test PASSED

2 - попытка наивного отображения подробного журнала Springboot с использованием logback не привела к дальнейшему журналы (см. full diff )

    <logger name="org.springframework.test.context.junit.jupiter" level="debug" />
    <logger name="org.springframework.boot.test" level="debug" />

3 - попытка запустить тест с intellij вместо gradle не приводит к дальнейшим выводам (см. связанные Обновление Intelij 2019.1 прерывает тесты JUnit )

java ... com.intellij.rt.execution.application.AppMainV2 com.intellij.rt.junit.JUnitStarter -ideVersion5 -junit5 org.springframework.cloud.appbroker.integration.CreateServiceKeyBindingComponentTest
##teamcity[enteredTheMatrix]
##teamcity[treeEnded]

Полный список других диагностик, рассмотренных в файле журнала вместе со связанными коммитами


РЕДАКТИРОВАНИЕ

Ошибка "тесты не найдены ..." внезапно исчезла после того, как она постоянно воспроизводилась путем добавления / удаления ошибочных bean-компонентов в контексте весны. Я больше не могу ни воспроизвести это, ни четко определить, что это исправило в моей среде: - (

Вот промежуточные этапы, которые я пробежал, даже если они кажутся не связанными, и я не объясняю, как они могли это сделать повлияла на проблему:

0 - обновление springboot / junit / gradle в commit d9fda3 , которое не было бы должным образом перезагружено демоном intellij / gradle

1 - передача опции --scan в сборку Gradle (которая производит сканирование сборки )

Сканирование сборки является общей и централизованной записью сборки, которая дает представление о том, что и почему.

2 - включение intellij Включить отладку скрипта Gradle option

3 - запустить сборку gradle в отладчике Idea, нажав «Отладка» в конфигурации Gradle

4 - остановка демона Gradle с помощью ./gradlew --stop


1 Ответ

0 голосов
/ 13 марта 2020

Запуск gradle clean на проекте верхнего уровня окончательно решил проблему для меня (после повторного воспроизведения).

Примечания о дальнейших неудачных попытках:

  • A gradle clean на уровне подпроекта (этого многомодульного проекта)
  • Выполнение теста с использованием Intellij Runner вместо Gradle Runner
  • Выход из демона Gradle с помощью ./gradlew -stop
...