Тесты Spring Boot - подтверждают максимальное количество запущенных контекстов приложений SpringJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Тесты Spring Boot - подтверждают максимальное количество запущенных контекстов приложений Spring

Сообщение Anonymous »

У меня есть несколько интеграционных тестов с @SpringBootTest.
В некоторых случаях Spring Boot запускает несколько контекстов приложения, выполняя эти интеграционные тесты (например, из-за использования @MockBean и @SpyBean). в конкретном тестовом классе вместо определения их в общем абстрактном классе), и это приводит к увеличению времени сборки или, что еще хуже, может привести к сбою выполнения надежного плагина (как в моем случае). Следующий пример с двумя тестовыми классами запускает два контекста приложения:

Код: Выделить всё

@SpringBootTest
class AbstractIntegrationTest {
..
}

class IntegrationTest1 extends AbstractIntegrationTest {
@MockBean
private Service1 service1;
@Test
void someTest1() { ... }
}

class IntegrationTest2 extends AbstractIntegrationTest {
@MockBean
private Service1 service1;
@Test
void someTest2() { ... }
}
но если мы переместим то же поле с помощью @MockBean в абстрактный класс, будет запущен только один контекст приложения.
После выявив и исправив все эти случаи, теперь у меня есть только два запущенных контекста приложения (первый — без каких-либо имитируемых компонентов, а второй — с макетными и шпионскими компонентами). Я обнаружил, что существует DefaultContextCache, который обрабатывает созданные контексты приложений, но неясно, как этого достичь. Мы могли бы включить ведение журнала по этому классу (

Код: Выделить всё

logging.level.org.springframework.test.context.cache: debug
), и он зарегистрирует следующие сообщения:

Код: Выделить всё

Spring test ApplicationContext cache statistics: [DefaultContextCache@44351c52 size = 8, maxSize = 32, parentContextCount = 0, hitCount = 2156, missCount = 8]
в этом примере size = 8 — отображает количество кэшированных контекстов приложения (в данном случае это общее количество контекстов приложения, и было никаких выселений по достижении максимального размера). Это полезный журнал для описанного сценария, но я хочу иметь тест, который выдает ожидаемое утверждение, чтобы предотвратить появление новых дополнительных контекстов приложения по ошибке в будущем.
Я хотел бы иметь тест утверждения, который проверяет общее количество запущенных контекстов приложения после выполнения всех тестов. Как этого добиться?

Подробнее здесь: https://stackoverflow.com/questions/784 ... n-contexts
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Метаданные импорта dspace подтверждают изменения, но не применяют их
    Anonymous » » в форуме JAVA
    0 Ответы
    24 Просмотры
    Последнее сообщение Anonymous
  • Платежи полосы не подтверждают сумму
    Anonymous » » в форуме Php
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Как настроить RequestLog для нескольких контекстов веб-приложений в jetty12
    Anonymous » » в форуме JAVA
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Как настроить RequestLog для нескольких контекстов веб-приложений в jetty12
    Anonymous » » в форуме JAVA
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Как программно получить имя пакета запущенных приложений в Android
    Гость » » в форуме Android
    0 Ответы
    29 Просмотры
    Последнее сообщение Гость

Вернуться в «JAVA»