Maven Surefire와 Maven Failsafe 플러그인의 차이점은 무엇입니까?


답변:


141

간단히 말해서 Failsafe 플러그인은 통합 테스트 를 실행하고 Surefire는 단위 테스트 를 실행 하도록 설계되었습니다 .

이것은 Maven FAQ에 자세히 설명되어 있습니다 .

  • maven-surefire-plugin단위 테스트 를 실행하도록 설계되었으며 테스트 중 하나라도 실패하면 빌드가 즉시 실패합니다.

  • maven-failsafe-plugin통합 테스트 실행을 위해 설계되었으며 실제로 테스트 실행에서 테스트 실패가있는 경우 빌드 실패를 분리합니다.

    " failsafe " 라는 이름 은 surefire의 동의어이고 실패 할 때 안전한 방식으로 수행한다는 것을 의미하기 때문에 선택되었습니다.

    안전 장치 플러그인은 두 가지 목표를 가지고 :

또한보십시오:


4
흥미로운 질문은 이유 입니다. 많은 빌드 도구는이를 다소 인위적이고 제한된 구분없이 완벽하게 작동합니다. 두 플러그인을 함께 구성하고 보고서를 일관된 방식으로 흡수하는 것은 PITA입니다.
Raphael

그리고 아니요, 다른 답변에 명시된 차이점은 필터 및 플래그가되어야하는 것에 대한 여러 도구를 갖는 충분한 이유를 제공하지 않습니다.
Raphael

27

에서 https://maven.apache.org/surefire/maven-failsafe-plugin/ , 나는 확실한 안전 모드의 차이는 그들이 실패 방법이라고 말할 것입니다 :

테스트 실행에 Surefire 플러그인을 사용하는 경우 테스트 실패가 발생하면 빌드가 통합 테스트 단계에서 중지되고 통합 테스트 환경이 올바르게 해체되지 않습니다.

Failsafe 플러그인은 통합 테스트 중에 사용되며 애플리케이션의 통합 테스트를 실행하기 위해 빌드 라이프 사이클의 단계를 확인합니다. Failsafe 플러그인은 통합 테스트 단계에서 빌드에 실패하지 않으므로 통합 후 테스트 단계를 실행할 수 있습니다.


2
그러면 질문은 다음과 같습니다. 그들이 잘못된 상태로 물건을 남길 수 있다고 말하는 경우 왜 Surefire를 사용합니까?
user118967

6

우리 나라에서는 "maven failsafe maven surefire"를 검색 할 때 두 번째 Google 결과가이 FAQ에 도달합니다. maven-failsafe-plugin과 maven-surefire-plugin의 차이점은 다음 같습니다.

maven-surefire-plugin은 단위 테스트를 실행하도록 설계되었으며 테스트 중 하나라도 실패하면 빌드가 즉시 실패합니다.

maven-failsafe-plugin은 통합 테스트를 실행하도록 설계되었으며 실제로 테스트 실행에서 테스트 실패가있는 경우 빌드 실패를 분리합니다. "

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.