3. 테스트 설정

테스트 및 분석 단계는 빌드된 코드의 품질과 안정성을 검증하는 과정입니다. 이 단계는 버그를 조기에 발견하고, 코드의 품질을 유지하는 데 매우 중요합니다. 단위 테스트, 통합 테스트, 성능 테스트 등 다양한 테스트를 수행합니다.

테스트 및 분석 도구로는 Junit(단위 테스트), SonarQube(정적 코드 분석) 등이 사용됩니다.

1. Junit

개발자가 작성한 코드의 특정 기능이나 모듈이 의도한 대로 정확히 동작하는지 검증하는 데 사용되는 자바언어용 테스트프레임워크입니다.

Junit은 메서드 단위 혹은 클래스 단위의 테스트를 진행할 수 있도록 지원합니다. assert()메서드를 통해 테스트 수행결과를 판별합니다.

  • clean compile package옵션에 테스트까지 추가되어 있으므로 테스트 자동수행

2. SonarQube

코드의 품질을 관리하고 개선할 수 있도록 돕는 정적 코드 분석 도구로, 개발단계의 잠재적인 버그나 보안취약점등을 식별하여 개발자로 하여금 더 안전하고, 깨끗한 코드를 작성하도록 지원합니다.

소나큐브는실제 소스코드를 실행하는 것이 아닌 코드 분석만을 진행하므로 Runtime시의 에러를 캐치하지는 못합니다. Jenkins와 같은 CI/CD도구에서는 단위 테스트 및 정적 코드 테스트를 진행하여 모두 통과 하는 경우 다음 단계를 수행하도록 설정할 수 있습니다.

3. SonarQube설정

1) 소나큐브 컨테이너 실행

docker container run -d --name=sonarqube -p 9000:9000 --restart=always sonarqube:8.6-community

2) 소나큐브 접속

3) 소나큐브 프로젝트 생성

4) 프로젝트 생성

5) 토큰 생성

6) 메이븐접속을 위한 로그인 키 생성

7) 젠킨스 웹훅 설정

Webhook은 Jenkins에서 소나큐브로 요청한 정적 분석이 완료된 이후 분석 결과를 응답 하기 위한 설정이다.

url :http://{JENKINS_URL}:{JENKINS_PORT}/sonarqube-webhook/

  • loopback ip는 사용이 불가하므로 로컬 PC의 ip주소를 확인하여 작성한다.

4. 젠킨스 소나큐브 설정

1) 젠킨스 플러그인 설치

2) 소나큐브 서버등록

  • manage - configure - SonarQube servers

  • 소나토큰 등록화면

3) 소나큐브 스캐너 등록

  • manage - tools - SonarQube Scanner installations

4) Build단계에 SonarQube 추가

sonar:sonar -Dsonar.projectKey=guestbook -Dsonar.host.url=http://<your-ip>:9000 -Dsonar.login=dfaa78e1a63c7ed61b65e00f5daa646c1666a11e

5) 빌드 후 결과 확인

  • consoleoutput

5. 컨테이너 현황

Last updated