가장 간단한 솔루션은 두 개의 스위트 룸들로 테스트를 분할하는 것입니다. 그런 다음 스크립트 나 다른 자동화 된 방법을 개발하여 서버가 가동 중인지 여부를 확인하고 서버가 다운 된 경우 통합 테스트를 건너 뛰십시오. 그러나이 같은 테스트 스위트를 어떤 이유로 그룹화하지 않으면 다음과 같은 대안이 있습니다.
서버를 사용할 수없는 경우 테스트를 건너 뛰는 사용자 정의 Runner을 만들 수 있습니다. 러너가 독자적으로 서버 가용성을 결정하거나 테스트 단계 이전에 실행되는 스크립트와 같은 외부 프로세스를 통해 러너를 결정할 수 있으며 주자가 확인할 수있는 JVM에 시스템 특성을 설정합니다 (예 : -Dcom.company.testrun.integration=false
을 명령으로 전달하십시오 라인 인수).
통합 테스트 클래스의 @RunWith
주석을 사용하여 사용자 지정 러너를 활성화하고 다른 모든 테스트에 기본 제공 러너를 사용할 수 있으므로 영향을받지 않습니다. 또는 에 대한 모든 러너를 사용하여 테스트를 수행하고 통합 테스트 방법을 장식하는 데 사용하는 새로운 주석 (예 : @IntegrationTest
)을 만들 수 있습니다. 후자의 접근 방식을 사용하면 서버가 사용할 수없는 경우에만 러너가 건너 뛰기 로직을 적용합니다. 및 테스트 메소드에 특수 주석이 있습니다.