Как исключить *классы AutoConfiguration в тестах Spring Boot JUnit?

Я попробовал:

@RunWith(SpringJUnit4ClassRunner.class)
@EnableAutoConfiguration(exclude=CrshAutoConfiguration.class)
@SpringApplicationConfiguration(classes = Application.class)
@WebAppConfiguration
public class LikeControllerTest {

Однако CRaSSHD все еще запускает. В то время как в настоящее время это не вредит тесту, я хотел бы отключить ненужные модули во время поблочного тестирования, чтобы убыстриться и также избежать потенциальных конфликтов.

60
задан 2 November 2014 в 12:59

2 ответа

Главные ответы не указывают на еще более простое и более гибкое решение.

просто помещают

@TestPropertySource(properties=
{"spring.autoconfigure.exclude=comma.seperated.ClassNames,com.example.FooAutoConfiguration"})
@SpringBootTest
public class MySpringTest {...}

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

Благодаря @skirsch для поощрения меня обновить это от комментария до ответа.

20
ответ дан 1 November 2019 в 10:03

Я думаю, что лучшее решение в настоящее время для springBoot 2.0 использует профили

@RunWith(SpringRunner.class)
@SpringBootTest(classes = Application.class, webEnvironment = WebEnvironment.DEFINED_PORT)
@ActiveProfiles("test")
public class ExcludeAutoConfigIntegrationTest {
    // ...
} 

пружина autoconfigure.exclude=org.springframework.boot.autoconfigure.security.servlet. SecurityAutoConfiguration

так или иначе в следующем ссылка дает 6 различных альтернатив для решения этого.

0
ответ дан 1 November 2019 в 10:03

Другие вопросы по тегам:

Похожие вопросы: