У меня есть класс @SpringBootApplication в каталоге java/
(тот же пакет) и еще один класс @SpringBootApplication в test/
для издевательств над некоторыми авто-проводными компонентами. Существует несколько тестов и какая конфигурация используется, варьируется от теста к тесту.Исключить конфигурацию, когда @WebMvcTest в Spring Boot 1.4
А в тестовом классе
@RunWith(SpringRunner.class)
@WebMvcTest(RecApiServerController.class)
бросает
java.lang.IllegalStateException: Found multiple @SpringBootConfiguration annotated classes [Generic bean: class [com.xxx.MockedTestConfig]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null; defined in file [/..direction.../target/test-classes/com/xxx/MockedTestConfig.class], Generic bean: class [com.xxx.MyApplication]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null; defined in file [/...direction.../target/classes/com/xxx/MyApplication.class]]
Я просто хочу, чтобы проверить маршрутизацию контроллера.
Как настроить конкретную конфигурацию приложения?
Я изменил 'MockedTestConfig.class' на регулярную @Configuration и добавил' classes = {MyApplication.class, MockedTestConfig.class} 'в @SpringBootTest, и все тесты работали нормально. Они не делали этого раньше, поэтому я изменил его на @SpringBootApplication. Я думаю, что порядок в «классах» был неправильным в то время. Спасибо. :) – margincall