J'utilise Spring Boot 1.4.3.RELEASE et je souhaite exclure certains composants de l'analyse lors de l'exécution des tests.Printemps ComponentScan excludeFilters annotation ne fonctionne pas dans le contexte Spring Boot Test
@RunWith(SpringRunner.class)
@SpringBootTest
@ComponentScan(
basePackages = {"com.foobar"},
excludeFilters = @Filter(type = FilterType.ASSIGNABLE_TYPE, classes = {AmazonKinesisRecordChecker.class, MyAmazonCredentials.class}))
public class ApplicationTests {
@Test
public void contextLoads() {
}
}
Malgré les filtres, quand je lance le test des composants indésirables sont chargés et Spring Boot se bloque comme ces classes ont besoin d'un environnement AWS pour fonctionner correctement:
2017-01-25 16:02:49.234 ERROR 10514 --- [ main] o.s.boot.SpringApplication : Application startup failed
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'amazonKinesisRecordChecker' defined in file
Question: comment puis-je faire fonctionner les filtres?
@SpringBootTest (classes = << choisir les classes à charger >>). Docs: http://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/test/context/SpringBootTest.html – Barath
@Bathath Voulez-vous dire qu'il n'y a qu'un moyen d'inclure des classes, mais ne pas les exclure lors de Spring Boot Test? – Javide
Non, je ne le dis pas, vous pouvez utiliser WebMvcTest pour exclure les filtres Doc: http: //docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/test/autoconfigure/web/servlet /WebMvcTest.html – Barath