Учитывая тестовый класс, например:
@WebMvcTest
@RunWith(SpringRunner.class)
@SpringBootTest(properties = "spring.profiles.active=test")
public class MyControllerTest {
... some tests
}
Я получаю сообщение об ошибке:
java.lang.IllegalStateException: ошибка конфигурации: обнаружено несколько объявлений @BootstrapWith для тестового класса [com.example.MyControllerTest]: [@ org.springframework.test.context.BootstrapWith (value = class org.springframework.boot.test.autoconfigure .web.servlet.WebMvcTestContextBootstrapper), @ org.springframework.test.context.BootstrapWith (value = class org.springframework.boot.test.context.SpringBootTestContextBootstrapper)]
Желаемая цель состоит в том, чтобы я просто запускаю тест контроллера и, таким образом, из соображений производительности тестирования не хочу настраивать весь контекст - мне просто нужен «веб-слой».
Я могу удалить строку @SpringBootTest(properties = "spring.profiles.active=test")
, однако сейчас я не активировал тестовый профиль, который может каким-то образом настраивать веб-контекст через свойства, например настройки Джексона, которые больше не будут применяться. Есть ли способ пройти тест только "веб-слоя" и при этом активировать профиль пружины?
Моя среда - java version "10.0.2" 2018-07-17
, весенняя загрузка 1.5.16.RELEASE
activate a spring profile
. Какой профиль пружины вы хотите активировать? - person Amit Phaltankar   schedule 17.10.2018test
. т.е. в пути к классам естьapplication-test.properties
файл. Этот файл может выполнять такие действия, как установка параметров сериализации Джексона, которые могут изменять поведение приложения. С активированным профилем результат может отличаться от того, когда он не активирован, поэтому я хочу активировать его в тесте. - person David   schedule 17.10.2018