일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- recon-ng
- AttackGraph
- 액티브스캐닝
- OIDC
- 화이트해커
- dnsenum
- SecurityMetric
- airdecap-ng
- 계정 탈취
- NMAP
- 공격그래프
- davtest
- Container
- Shift + ESC
- decap
- 강의
- OpenID Connect
- 보안
- ip forwarding
- 무선채널
- 대학원
- 프로젝트
- Kublet
- Social Network in Game
- Mac
- cgroups
- Mimikatz
- 패시브스캐닝
- 넷크래프트
- Chrome 작업관리자
- Today
- Total
네른
[CI/CD] Gitlab-ci.yml 작성 예제 - JUnit 본문
본 글에서는 JUnit, Jacoco, Jmeter, SiteSpeed.io를 gitlab-ci.yml에 작성하는 틀을 적어두고자함.
JUnit
JUnit은 우선 Gradle 환경을 기반으로 설명하고자 함.
JUnit은 자바의 유닛 테스트 도구로, gradle에서 해당 플러그인을 지원하고 있음
- build.gradle 파일에 다음과 같은 내용 추가
버전이 달라 작성하는 내용에 약간의 차이가 있을 수 있음
implementation ("junit:junit:{junit버전}")
testImplementation ("junit:junit:{junit버전}")
이후, Java Testcase를 직접 작성하고
package test;
import static org.junit.Assert.*;
import org.junit.Test;
public class JunitTest {
Calculator cal = new Calculator();
BooleanTest boo = new BooleanTest();
String arraytest[] = {"APPLE", "PEACH"};
String arraytest2[] = {"APPLE", "PEACH"};
@Test
public void testMultiple() {
assertEquals(56, cal.multiple(7, 8)); //assertEquals(a,b) : 두개의 매개변수(a,b)가 같은지 확인
assertNull(null); // assertNull() : 매개변수가 null인지 확인
assertNotNull(cal.multiple(7, 8)); //assertNotNull() : 매개변수가 null이 아닌지 확인
assertTrue(boo.isInteger("10")); //assertTrue() : 매개변수가 true 인지 확인
assertArrayEquals(arraytest,arraytest2);//assertArrayEquals() : 두 배열이 같은지 확인
}
@Test
public void testMinus() {
assertEquals(1, cal.minus(7, 8)); //assertEquals(a,b) : 두개의 매개변수(a,b)가 같은지 확인
}
위의 테스트 코드를 기존 코드와 함께 commit하면 된다.
이 때, gitlab-ci.yml 파일은 다음과 같이 작성한다.
gitlab-ci.yml이란?
- Gitlab은 commit시에 포함되어있는 gitlab-ci.yml 파일에 정의된 내용에 따라 job을 실행하게 됨
- 이 job들은 모여서 하나의 pipeline을 구성하게 되며 이 pipeline을 모두 정상적으로 통과한 commit만이 반영됨
image: gradle:latest
// 해당 commit이 수행할 모든 job들
stages:
- unit_test
// 그 중 unit_test 라는 이름의 job에 대한 정의
unit_test:
stage: test
script:
// gradle을 이용한 테스트 진행
- gradle check
artifacts:
// 앞선 작업의 여부와 관계없이 반드시 진행 - 여기서는 테스트가 성공하던 안하던 레포트를 생성하기 위함
when: always
// 생성된 테스트 리포트를 Gitlab에서 확인할 수 있도록 아티팩트로 추출
reports:
junit: build/test-results/test/**/TEST-*.xml
tags:
- ci
gitlab-ci.yml에 위와 같이 작성하면 됨. 매우 간단하다.
물론 프리미엄 버전의 gitlab에서는 이런걸 플러그인으로 제공하고있으니 그걸 써도 된다.
여기서는 그런거 없이 직접 사용하는 방법을 설명하는 것.
추가) 추출하는 xml은 JUnit이 기본적으로 생성하는 test의 결과파일
테스트가 성공하면 위의 사진과 같이 성공했다는 내역을 볼 수 있으며 view details를 눌러 레포트를 열어볼 수 있다.
테스트를 실패하면 view details에 이렇게 실패한 내역이 나온다.
이는 JUnit의 로그이다!
'DevOps' 카테고리의 다른 글
[CI/CD] Gitlab-ci.yml 작성 예제 - Docker Image Push (0) | 2022.04.29 |
---|---|
[CI/CD] Gitlab-ci.yml 작성 예제 - Jacoco (0) | 2022.04.29 |
[CI/CD] GitLab CI/CD 적용 시 알아두면 좋은 점 (0) | 2022.04.28 |
[CI/CD] Gitlab-ci.yml 작성 예제 - JMeter (0) | 2022.04.28 |
[CI/CD] Gitlab-ci.yml 작성 예제 - SiteSpeed.io (0) | 2022.04.25 |