홈 › CI/CD › 03 / 7

자동 테스트와 품질 게이트

섹션 7진행 0 / 7

4. 응용 변형 예제

4.1 매개변수화 테스트로 여러 입력 한 번에

@ParameterizedTest 와 @ValueSource 를 쓰면 입력값마다 테스트 메서드를 새로 안 써도 됩니다.

java
@ParameterizedTest
@ValueSource(ints = {2, 4, 6, 8})
void isEvenForEvenNumbers(int n) { assertTrue(Calc.isEven(n)); }

4.2 태그로 느린 테스트 분리

@Tag("slow") 로 표시하고 평소에는 빼고 돌리면 파이프라인이 빨라집니다.

bash
java -jar console.jar execute --class-path out --scan-class-path \
  --exclude-tag slow

4.3 실패 목록만 다시 확인

리포트 XML 에서 실패한 테스트 이름만 뽑아 원인 파악에 씁니다.

bash
grep -B1 '<failure' reports/TEST-junit-jupiter.xml | grep testcase

4.4 커버리지 게이트를 XML 규칙으로 정의

JaCoCo 는 최소 커버리지를 XML 규칙으로 강제할 수 있습니다(실행은 이 레슨 범위 밖).

xml
<rule>
  <limit counter="LINE" minimum="0.70"/>
</rule>

4.5 Checkstyle 을 게이트에 넣기

Checkstyle 을 별도 스텝으로 두고 종료 코드로 게이트를 만듭니다.

yaml
- name: 스타일 검사
  run: checkstyle -c checkstyle.xml -f sarif src > checkstyle.log || exit 1

위반이 있으면 워크플로가 실패로 표시됩니다.