자동 테스트와 품질 게이트
6. 연습 문제
문제 1. JUnit 콘솔 런처 실행 명령
out 폴더의 클래스를 스캔해 테스트를 실행하고 요약만 출력하는 명령을 쓰세요.
java -jar junit-platform-console-standalone-1.11.4.jar \
execute --class-path out --scan-class-path --details=summary--scan-class-path 가 @Test 메서드를 자동으로 찾고, --details=summary 가 트리 대신 개수만 보여 줍니다.
문제 2. 실패 시 파이프라인 중단
테스트가 실패하면 "중단" 을 출력하고 스크립트를 종료 코드 1 로 끝내는 조건문을 쓰세요.
if java -jar console.jar execute --class-path out --scan-class-path; then
echo "통과"
else
echo "중단"; exit 1
fiif 는 명령의 종료 코드로 분기하므로 콘솔 런처가 1 을 돌려주면 else 로 갑니다.
문제 3. -Xlint:all -Werror 의 의미
이 두 옵션을 함께 쓰면 컴파일 결과가 어떻게 달라지는지 한 문장으로 쓰세요.
-Xlint:all 은 잠재 문제를 경고로 보여 주고,
-Werror 는 그 경고를 에러로 승격해 컴파일을 실패시킵니다.경고만으로는 종료 코드가 0 이라 파이프라인을 못 막지만, -Werror 를 더하면 막습니다.
문제 4. 리포트에서 실패 개수만 뽑기
reports/TEST-junit-jupiter.xml 에서 tests·failures 속성만 뽑는 명령을 쓰세요.
grep -oE 'tests="[0-9]*" skipped="[0-9]*" failures="[0-9]*"' \
reports/TEST-junit-jupiter.xmltime·hostname 같이 실행마다 바뀌는 속성은 정규식에서 빼야 결과가 매번 같습니다.
문제 5. 품질 게이트에 넣을 항목 세 가지
이 레슨에서 다룬 품질 게이트 항목 중 세 가지를 쓰세요.
테스트 전체 통과, 정적 검사 경고 0건, 커버리지 최소 비율프로젝트에 따라 커버리지 대신 빌드 성공 여부를 넣기도 합니다.