Swagger ломает тесты Junit, находит способ сохранить оба - PullRequest
0 голосов
/ 17 сентября 2018

Каждый раз, когда я пытаюсь запустить тест 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, но результат тот же

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