Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feature/#126 Jacoco를 사용한 테스트 커버리지 측정 #129

Merged
merged 12 commits into from
Dec 9, 2024

Conversation

LeeShinHaeng
Copy link
Contributor

Summary

close #126

jacoco 도입 및 github actions 설정

Tasks

  • jacoco를 통한 테스트 커버리지 측정
  • github actions를 이용해 커버리지 검사 후 PR 승인 결정

@LeeShinHaeng LeeShinHaeng added the ✨feature create new feature label Dec 8, 2024
@LeeShinHaeng LeeShinHaeng requested a review from a team December 8, 2024 12:50
@LeeShinHaeng LeeShinHaeng self-assigned this Dec 8, 2024
@LeeShinHaeng LeeShinHaeng linked an issue Dec 8, 2024 that may be closed by this pull request
4 tasks
Copy link
Contributor

coderabbitai bot commented Dec 8, 2024

Important

Review skipped

Auto incremental reviews are disabled on this repository.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Walkthrough

이 변경 사항은 develop 브랜치를 대상으로 하는 풀 리퀘스트를 검증하기 위한 새로운 GitHub Actions 워크플로 파일 pull-request-jacoco.yml을 도입합니다. 이 워크플로는 여러 단계를 포함하여 Gradle을 사용한 테스트 실행과 JaCoCo를 통한 테스트 커버리지 보고서를 생성합니다. 또한, aics-apiaics-domain 모듈에 대한 JaCoCo 테스트 커버리지 설정이 추가되며, 최소 커버리지 기준이 80%로 설정됩니다.

Changes

파일 경로 변경 요약
.github/workflows/pull-request-jacoco.yml 새로운 GitHub Actions 워크플로 파일 추가.
aics-api/build.gradle JaCoCo 테스트 커버리지 도구에 대한 새로운 설정 추가 및 jacocoTestReport 블록 정의.
aics-domain/build.gradle bootJar 작업 비활성화 및 jacocoTestReport 추가.
build.gradle 여러 의존성 추가 및 bootJar 작업 비활성화.
gradle/jacoco.gradle JaCoCo 플러그인 추가 및 여러 테스트 커버리지 관련 작업 정의.

Assessment against linked issues

Objective Addressed Explanation
Jacoco 의존성 추가 (126)
커버리지 측정 결과를 PR 코멘트로 업로드 (126)
커버리지가 80% 미만일 때 PR 병합 되지 않도록 제약 추가 (126)
Report를 html, xml 형태로 /build/jacoco 디렉토리에 추가 (126)

Possibly related PRs

  • chore/#100 Github Actions, Docker를 이용한 CD #102: 이 PR은 테스트 및 커버리지 보고를 위한 새로운 GitHub Actions 워크플로를 도입하며, PR #102는 Docker 이미지 빌드 및 배포를 위한 GitHub Actions 워크플로를 포함합니다. 두 PR 모두 리포지토리 체크아웃 및 JDK 17 설정과 같은 유사한 단계를 활용합니다.

Suggested reviewers

  • LeeHanEum

Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link

github-actions bot commented Dec 8, 2024

Test Coverage Report

Overall Project 88.13% 🍏

There is no coverage information present for the Files changed

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

🧹 Outside diff range and nitpick comments (5)
.github/workflows/pull-request-jacoco.yml (2)

27-28: Gradle 캐시 설정 추가 권장

빌드 성능 향상을 위해 Gradle 의존성 캐싱을 추가하는 것이 좋습니다.

다음과 같이 캐시 설정을 추가할 수 있습니다:

      - name: Test with Gradle
+       uses: gradle/gradle-build-action@v2
+       with:
+         arguments: --info test
-       run: ./gradlew --info test

39-39: 파일 끝에 개행 문자 추가 필요

YAML 파일 표준에 따라 파일 끝에 개행 문자를 추가해야 합니다.

  min-coverage-overall: 80
+
🧰 Tools
🪛 yamllint (1.35.1)

[error] 39-39: no new line character at the end of file

(new-line-at-end-of-file)

build.gradle (2)

Line range hint 3-4: Spring Boot 버전 호환성 문제

현재 지정된 Spring Boot 3.4.0 버전은 존재하지 않습니다. 최신 안정 버전인 3.2.x로 수정이 필요합니다.

-id 'org.springframework.boot' version '3.4.0'
+id 'org.springframework.boot' version '3.2.2'

Line range hint 52-54: JWT 라이브러리 호환성 검토 필요

현재 사용 중인 jjwt:0.9.1jaxb-api:2.3.1은 Jakarta EE를 사용하는 Spring Boot 3.x와 호환성 문제가 있을 수 있습니다.

다음과 같이 최신 버전의 JWT 라이브러리로 교체를 추천드립니다:

-implementation 'io.jsonwebtoken:jjwt:0.9.1'
-implementation 'javax.xml.bind:jaxb-api:2.3.1'
+implementation 'io.jsonwebtoken:jjwt-api:0.12.3'
+runtimeOnly 'io.jsonwebtoken:jjwt-impl:0.12.3'
+runtimeOnly 'io.jsonwebtoken:jjwt-jackson:0.12.3'
gradle/jacoco.gradle (1)

29-39: 제외 패턴에 대한 문서화 필요

현재 설정된 제외 패턴들에 대한 설명이 필요합니다. 각 제외 항목이 왜 커버리지 측정에서 제외되어야 하는지에 대한 명확한 이유를 주석으로 추가해주세요.

다음과 같이 주석을 추가하는 것을 추천드립니다:

 fileTree(dir: it, exclude: [
+                    // DTO 클래스는 데이터 구조만 포함하므로 제외
                     '**/dto/**',
+                    // 이벤트 클래스는 구조체이므로 제외
                     '**/event/**',
+                    // 초기 데이터 설정 클래스 제외
                     '**/*InitData*',
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between 51e932f and 6aded80.

📒 Files selected for processing (5)
  • .github/workflows/pull-request-jacoco.yml (1 hunks)
  • aics-api/build.gradle (1 hunks)
  • aics-domain/build.gradle (1 hunks)
  • build.gradle (1 hunks)
  • gradle/jacoco.gradle (1 hunks)
🧰 Additional context used
🪛 yamllint (1.35.1)
.github/workflows/pull-request-jacoco.yml

[error] 39-39: no new line character at the end of file

(new-line-at-end-of-file)

🔇 Additional comments (4)
aics-domain/build.gradle (2)

21-26: 테스트 리포트 설정이 적절합니다.

  • XML 리포트는 GitHub Actions 통합에 필요합니다.
  • HTML 리포트는 로컬 개발 환경에서 유용합니다.
  • test 태스크 의존성이 올바르게 설정되어 있습니다.

19-19: Jacoco 설정 파일 경로 검증 필요

상대 경로를 사용하여 Jacoco 설정 파일을 참조하고 있습니다. 빌드 안정성을 위해 파일 존재 여부를 확인해야 합니다.

✅ Verification successful

Jacoco 설정 파일이 정상적으로 존재함을 확인했습니다

gradle/jacoco.gradle 파일이 프로젝트 루트에 존재하므로 빌드 시 문제가 없을 것으로 확인됩니다.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify the existence of jacoco.gradle file
if [ -f "gradle/jacoco.gradle" ]; then
    echo "jacoco.gradle exists"
else
    echo "jacoco.gradle not found"
fi

Length of output: 84

aics-api/build.gradle (1)

24-31: 도메인 모듈과 일관된 Jacoco 설정이 확인되었습니다.

테스트 커버리지 측정을 위한 설정이 도메인 모듈과 동일한 방식으로 구현되어 있어 일관성이 유지됩니다.

gradle/jacoco.gradle (1)

80-89: 테스트 픽스처 리포트 설정 검토

jacocoTestFixturesReport 태스크가 추가되었습니다만, 메인 리포트와의 통합이 필요할 수 있습니다. 또한 이 태스크의 실행 시점이 명확하지 않습니다.

.github/workflows/pull-request-jacoco.yml Outdated Show resolved Hide resolved
.github/workflows/pull-request-jacoco.yml Show resolved Hide resolved
gradle/jacoco.gradle Outdated Show resolved Hide resolved
gradle/jacoco.gradle Outdated Show resolved Hide resolved
Copy link

github-actions bot commented Dec 8, 2024

Test Coverage Report

Overall Project 37.58%

There is no coverage information present for the Files changed

Copy link

github-actions bot commented Dec 8, 2024

Test Coverage Report

Overall Project 86.07% 🍏

There is no coverage information present for the Files changed

Copy link
Member

@LeeHanEum LeeHanEum left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

번거로운 작업이었을텐데 너무 고생 많으셨어요 👍

@LeeShinHaeng LeeShinHaeng merged commit 7a97598 into develop Dec 9, 2024
3 checks passed
@LeeShinHaeng LeeShinHaeng deleted the feature/#126-adopt-jacoco branch December 9, 2024 02:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
✨feature create new feature
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Jacoco를 사용한 테스트 커버리지 측정
2 participants