2017-04-10 3 views
0

같은 패키지에 unittest 클래스를 몇 개 만들었습니다. 이러한 모든 클래스는 정확히 하나 개의 테스트 케이스를 아래 그림과 같은 주석이 있습니다unittest 클래스 세트의 스프링 응용 프로그램 컨텍스트

@RunWith (SpringJUnit4ClassRunner.class) @ContextConfiguration (클래스 = {TestConfig.class})

나는이을 testcases를 실행

, I 각 테스트 케이스를 자체 응용 프로그램 컨텍스트에서 실행하려고합니다. 그러나 동일한 패키지의 모든 테스트 사례가 하나의 단일 응용 프로그램 컨텍스트를 공유하는 것처럼 보입니다. 이는 maven 명령 줄에서 실행되거나 Eclipse에서 junit으로 실행되도록 패키지를 선택하는 것입니다.

TestConfig1, TestConfig2 등과 같은 이름의 TestConfig를 복제하고 다른 TestConfig 클래스로 다른 테스트 클래스에 주석을 추가하면 각 테스트가 자체 컨텍스트 인스턴스에서 실행됩니다.

다른 멋진 방법이 있습니까?

고마워요.

답변

0

이것은 스프링 테스트의 기본 동작입니다. 스프링 테스트는 기본 테스트를 통해 응용 프로그램 컨텍스트를 캐시합니다. 이렇게하면 테스트 실행 시간이 단축됩니다.

유스 케이스에 대해 잘 모릅니다. 만약 당신이 어디에 응용 프로그램 컨텍스트 (후속 테스트에 영향을 미치는 스프링에 의해 관리되는 콩의 상태를 변경) dirtying 어디로 U 다음 @DirtiesContext 함께 테스트 메서드를 주석을 위해 갈 수 있습니다. 스프링 테스트는 이러한 메소드의 컨텍스트를 다시로드합니다. 아래 링크에서 DirtiesContext를 사용하는 방법을 참조하십시오.

https://docs.spring.io/spring/docs/current/spring-framework-reference/html/integration-testing.html#testcontext-ctx-management-caching

사용이 exponentialy 테스트 실행 시간을 쏠 수 전용으로 필요한주의 깊게 때마다이 기능입니다.