Каждый раз, когда я пытаюсь запустить тест Junit, я получаю
java.lang.IllegalStateException: Failed to load ApplicationContext
Я испробовал почти все возможные комбинации с разными аннотациями, и в конце я обнаружил, что это Swagger, который нарушает юнит-тесты. Я прочитал, что есть возможность преодолеть проблему с профилями, чтобы я мог сохранить Swagger.
Я установил профиль по умолчанию в моей конфигурации Swagger, который выглядит следующим образом:
@Profile(value = "default")
@Configuration
@EnableSwagger2
public class SwaggerConfiguration
Мои основные тестовые классы выглядят так:
@ActiveProfiles("test")
@Ignore
@ContextConfiguration(classes = { TestConfiguration.class,
MyMainClassConfiguration.class })
public class Test extends UnitTest {
}
Класс TestConfiguration равен
org.springframework.boot.test.context.TestConfiguration
и класс UnitTest расширяет класс TestCase, который является классом Junit
@RunWith(SpringJUnit4ClassRunner.class)
public class UnitTest extends TestCase {
}
К сожалению, эта настройка профиля все еще не может загрузить мой ApplicationContext, когда я пытаюсь запустить модульный тест. Что мне не хватает?
Корень причины, по которой я верю,
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException No qualifying bean of type 'exampleRepository' available expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}
Этот exampleRepository автоматически подключается в конструкторе моего основного класса конфигурации и расширяет MongoRepository
Я также пытался автоматически связать произвольный компонент Service Bean, который, как я считаю, квалифицируется как bean-компонент autowire, потому что mongoRepository имеет @NoRepositoryBean, но результат тот же