복붙노트

[SPRING] Eclipse에서 모든 JUnit 테스트를 독립적으로 실행하고 매번 Spring 컨텍스트를 다시로드합니다.

SPRING

Eclipse에서 모든 JUnit 테스트를 독립적으로 실행하고 매번 Spring 컨텍스트를 다시로드합니다.

목표 : Eclipse에서 JUnit 클래스의 모든 테스트를 실행하여 각 테스트 전에 스프링 컨텍스트를 한 번만로드하는 대신로드합니다.

시나리오 : 나는 문맥 하중에 대한 샘플 데이터로 초기화되는 HSQL 메모리 내장 데이터베이스를 사용하는 DAO 테스트 스위트를 상속 받았다. 테스트를 실행하는 동안 전체 클래스가 실행되면 모든 테스트가 통과하는 것으로 나타났습니다. 그러나 개별적으로 실행하면 특정 테스트 방법이 실패합니다. 분명히이 테스트는 독립적이지 않으며 초기 테스트는 데이터베이스 상태를 변경하고 자체적으로 정리 작업을 수행하지 않으며 나중에 테스트는 통과해야합니다. 각 테스트를 수동으로 실행하거나 코드를 수정할 필요없이 자체적으로 실행될 때 어떤 테스트가 종속적인지 확인하고 실패 할 것인지 확인하려고합니다.

해결법

  1. ==============================

    1.테스트 클래스에서 @DirtiesContext를 사용할 수 있습니다.

    테스트 클래스에서 @DirtiesContext를 사용할 수 있습니다.

    @RunWith(SpringJUnit4ClassRunner.class)
    @ContextConfiguration(classes = { MyConf.class })
    @DirtiesContext(classMode = ClassMode.AFTER_EACH_TEST_METHOD)
    public void MyTestClass {
    

    그러면 각 테스트 메소드가 끝난 후 컨텍스트가 다시로드됩니다.

  2. from https://stackoverflow.com/questions/24854527/run-all-junit-tests-indepentently-in-eclipse-reloading-spring-context-each-time by cc-by-sa and MIT license