I는 다음과 같이 주석 통합 테스트 클래스는 다음Spring : @PreDestroy가 각 테스트 클래스 끝에서 왜 호출되지 않습니까?
@WebAppConfiguration
@ContextConfiguration(classes = {AppConfiguration.class})
@RunWith(SpringJUnit4ClassRunner.class)
public class CacheConsumerTest {
}
을 다음 몇 가지 이유를 들어 내 AppConfiguration
@Configuration
@ComponentScan(basePackages = {"com.etc.etc.etc."})
@EnableWebMvc
public class AppConfiguration {
}
이다가, 내 @Component
콩 '@PreDestroy
이 CacheConsumerTest
에서 모든 테스트의 끝에서 호출지고의 없음 . 그러나 어떤 테스트가 실행되기 전에 시작시 @PostConstruct
이 호출됩니다.
누구든지 문제가 무엇인지 알 수 있습니까? 내 @Component
중 일부는 @Predestroy를 호출하여 백그라운드 스레드를 종료하고 싶습니다. 그렇지 않으면 백그라운드에서 수행하는 작업으로 인해 다른 테스트 클래스의 후속 테스트가 실패하게됩니다.
@DirtiesContext(classMode=ClassMode.AFTER_CLASS)
을 추가하려고했지만 도움이되지 않았습니다.
편집 : 그것은 모든 컨텍스트를 시작 캐시 만 모든 실행의 끝에서 그들을 파괴 : Does Spring @DirtiesContext reload Spring context?