Я попробовал:
@RunWith(SpringJUnit4ClassRunner.class)
@EnableAutoConfiguration(exclude=CrshAutoConfiguration.class)
@SpringApplicationConfiguration(classes = Application.class)
@WebAppConfiguration
public class LikeControllerTest {
Однако CRaSSHD все еще запускает. В то время как в настоящее время это не вредит тесту, я хотел бы отключить ненужные модули во время поблочного тестирования, чтобы убыстриться и также избежать потенциальных конфликтов.
Главные ответы не указывают на еще более простое и более гибкое решение.
просто помещают
@TestPropertySource(properties=
{"spring.autoconfigure.exclude=comma.seperated.ClassNames,com.example.FooAutoConfiguration"})
@SpringBootTest
public class MySpringTest {...}
аннотация выше Вашего тестового класса. Это означает, что другие тесты не затронуты особым случаем текущего теста. Если существует конфигурация, влияющая на большинство Ваших тестов, то рассмотрите использование пружинного профиля вместо этого, как текущий главный ответ предполагает.
Благодаря @skirsch для поощрения меня обновить это от комментария до ответа.
Я думаю, что лучшее решение в настоящее время для 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 различных альтернатив для решения этого.