Как предотвратить запуск приложения весенней загрузки для каждого тестового класса

Я знаю, что этот вопрос старый, но я не смог решить проблему в моем случае. Когда я запускаю тестовые классы, приложение весенней загрузки запускается для каждого тестового класса. У меня есть аннотации ниже в моих файлах тестового класса. Я хочу запустить приложение только один раз для всех тестовых классов

@RunWith(SpringJUnit4ClassRunner.class)
@ActiveProfiles("test")
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
@AutoConfigureMockMvc
@WithMockUser

person Sangeetharaj    schedule 17.01.2020    source источник
comment
Интеграционные тесты должны загружать контекст (и, конечно, это требует времени), но загруженный контекст повторно используется в других тестах. Протестируйте больше вещей в модульных тестах, если это возможно   -  person Sergii Zhevzhyk    schedule 17.01.2020


Ответы (2)


Я добился этого, используя родительский BaseTest

@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@AutoConfigureMockMvc
public abstract class BaseTest {

}

Я использую SpringRunner, но SpringJUnit4ClassRunner тоже должен быть в порядке

person Beppe C    schedule 17.01.2020
comment
Я пробовал то же самое, но не работает. Для каждого тестового класса весенняя загрузка запускает сервер, и таблицы создаются/изменяются в базе данных H2 в памяти. Я использую версию 2.2.2. - person Sangeetharaj; 18.01.2020
comment
Если я удалю @MockBean из своих тестовых классов, все будет нормально. Но я хочу издеваться над ответом на вызовы БД. Есть ли способ решить мою проблему? - person Sangeetharaj; 18.01.2020

@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)

Используя WebEnvironment.RANDOM_PORT, вы указываете Spring Boot запускать сервер при каждом экземпляре класса.

Чтобы избежать этого, используйте родительский класс, от которого унаследованы все тестовые классы.

person Toerktumlare    schedule 17.01.2020
comment
Я пробовал то же самое, но не работает. Для каждого тестового класса весенняя загрузка запускает сервер, и таблицы создаются/изменяются в базе данных H2 в памяти. Я использую версию 2.2.2. - person Sangeetharaj; 18.01.2020
comment
Если я удалю @MockBean из своих тестовых классов, все будет нормально. Но я хочу издеваться над ответом на вызовы БД. Есть ли способ решить мою проблему? - person Sangeetharaj; 18.01.2020
comment
опубликуйте весь свой код и опишите, что вы пытаетесь сделать, я не собираюсь помогать никому, кто не дал мне полную картину. в опубликованном коде нет @MockBean. Вы задали вопрос и разместили этот небольшой фрагмент кода. Мы ответили на ваш вопрос правильным ответом. Если это не сработает, вам нужно опубликовать соответствующую информацию и задать правильный вопрос. - person Toerktumlare; 18.01.2020