[java] Maven이 일부 실패한 경우에도 모든 테스트를 실행하도록 만들기

여러 모듈이있는 프로젝트가 있습니다. 모든 테스트가 통과되면 Maven 테스트가 모두 실행됩니다.

첫 번째 모듈에서 테스트가 실패하면 maven은 다음 프로젝트를 계속하지 않습니다. Surefire 설정에서 testFailureIgnore를 true로 설정했지만 도움이되지 않습니다.

maven에서 모든 테스트를 실행하려면 어떻게합니까?



답변

로부터 메이븐 베더 문서 :

-fae, --fail-at-end 이후에는 빌드 만 실패합니다. 영향을받지 않은 모든 빌드가 계속되도록 허용

-fn, --fail-never 에 관계없이 프로젝트 결과, 빌드를 실패하지 마십시오

따라서 하나의 모듈을 테스트하는 보다 안전 -fae합니다.

그렇지 않으면 여러 개의 모듈 이 있고 모든mvn clean install -fn 모듈을 테스트하려는 경우 (실패한 테스트 모듈에 의존하는 모듈도 포함)을 실행해야합니다 .
-fae실패한 테스트 (다른 ​​모든 테스트 실행)가있는 모듈은 계속되지만 해당 모듈에 종속 된 모든 모듈은 건너 뜁니다.


답변

방금 “-fae”매개 변수를 찾았는데, Maven은 모든 테스트를 실행하고 실패시 중지하지 않습니다.


답변

surefire 2.6으로 테스트하고를 사용하여 surefire를 구성 할 수 있습니다 testFailureIgnore=true. 또는 명령 행에서 :

mvn install -Dmaven.test.failure.ignore=true


답변

루트 프로젝트 의 pom.xml에 surefire 플러그인에 대해 다음 구성을 추가하십시오 .

<project>
  [...]
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <configuration>
          <testFailureIgnore>true</testFailureIgnore>
        </configuration>
      </plugin>
    </plugins>
  </build>
  [...]
</project>


답변

빠른 답변 :

mvn -fn test

중첩 된 프로젝트 빌드와 함께 작동합니다.


답변