Skip to content

[GRB-06] 백엔드 테스트 코드와 CI 검증 코드 제거#79

Merged
alexization merged 1 commit intodevelopfrom
feat/grb-06-backend-test-ci-removal
Apr 9, 2026
Merged

[GRB-06] 백엔드 테스트 코드와 CI 검증 코드 제거#79
alexization merged 1 commit intodevelopfrom
feat/grb-06-backend-test-ci-removal

Conversation

@alexization
Copy link
Copy Markdown
Owner

@alexization alexization commented Apr 9, 2026

1) 요약

  • src/test/** 아래의 기존 테스트 코드와 테스트 리소스를 제거했습니다.
  • build.gradle에서 테스트 의존성과 integrationTest 설정을 제거했습니다.
  • .github/workflows/ci.yml, .github/workflows/deploy.yml은 유지하되 테스트를 실행하는 단계만 제거했습니다.
  • 현재 Harness 재구성 전까지 backend 테스트/CI baseline을 비우는 것이 목적입니다.

2) 연관 이슈

  • Closes #: 없음 (이번 세션에서 이슈 미생성)
  • 관련 frontend 이슈/PR: 없음

3) 문제와 목표

  • 문제: 기존 테스트 코드와 CI 검증 surface가 현 Harness 기준과 맞지 않아 이후 재구성 전에 baseline reset이 필요했습니다.
  • 사용자/운영자 관점의 결과: backend 저장소는 후속 test skill/CI contract 재구성 전까지 테스트와 검증 로직이 비워진 상태가 됩니다.
  • 비목표: 새 테스트 코드 작성, 새 CI 검증 로직 도입, src/main/ production 동작 변경

4) 영향 범위

  • 변경된 패키지/모듈: src/test/**, build.gradle, .github/workflows/ci.yml, .github/workflows/deploy.yml
  • API/DTO/Schema 영향: 없음
  • DB/Cache/Batch/Scheduler 영향: 없음
  • 보안/권한 영향: 없음

5) 검증 증거

유형 명령어 / 증거 결과
Build ./gradlew build 통과
Unit ./gradlew test 통과
Integration 미실행(테스트 코드와 integrationTest 레인을 제거함) 해당 없음
Coverage 미실행(관련 surface 제거함) 해당 없음
API/Manual Smoke 미실행(범위 아님) 해당 없음

6) 관측성 확인

  • 확인한 로그: 없음
  • 확인한 메트릭: 없음
  • 확인한 trace/dashboard/query: 없음

7) AI 리뷰 메모 (선택)

  • Codex: 없음
  • CodeRabbitAI: 없음

8) 리스크 및 롤백

  • 리스크: 후속 작업 전까지 backend 자동 회귀 검증 surface가 비어 있습니다.
  • 롤백 계획: 이 PR의 단일 커밋을 되돌리고 기존 테스트/CI surface를 복구합니다.

9) 체크리스트

  • 연관 이슈가 연결되어 있음
  • Build / Unit / Integration 결과가 기입되어 있음
  • API/스키마/배치 영향이 반영되었거나 없음을 명시함
  • 로그/메트릭/trace 확인 내용을 적었거나 불필요 사유를 적음
  • 문서 또는 후속 이슈가 업데이트되었거나 불필요 사유를 적음

Summary by CodeRabbit

릴리스 노트

  • Chores
    • 자동화된 테스트 검증이 일시적으로 비활성화되었습니다.
    • CI/CD 파이프라인이 단순화되었습니다.

- src/test 트리와 테스트 리소스 제거\n- Gradle test 및 integrationTest 설정 제거\n- CI와 deploy workflow에서 테스트 실행 단계 제거
@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Apr 9, 2026

📝 Walkthrough

워크스루

이 PR은 CI/CD 파이프라인의 자동 테스트 검증을 비활성화합니다. GitHub Actions 워크플로우의 테스트 작업을 제거하고, Gradle 빌드 설정에서 모든 테스트 관련 의존성 및 작업을 삭제하며, 약 20개의 단위 및 통합 테스트 파일과 테스트 리소스를 완전히 제거합니다.

변경사항

주요 변경 / 파일 요약
CI/CD 워크플로우
.github/workflows/ci.yml, .github/workflows/deploy.yml
verify 작업이 완전히 제거되고 placeholder 스텁으로 교체됨. 체크아웃, Java 설정, ./gradlew test, ./gradlew integrationTest 실행 로직이 모두 삭제되어 자동 테스트 검증이 비활성화됨.
Gradle 빌드 설정
build.gradle
JUnit, Testcontainers, Spring Boot Test, H2 등 모든 테스트 의존성(testImplementation/testRuntimeOnly) 제거. 커스텀 testintegrationTest 작업 설정과 관련 클래스패스 구성이 삭제됨.
인증/권한 관련 테스트
src/test/java/com/gitranker/api/domain/auth/*, src/test/java/com/gitranker/api/global/auth/jwt/JwtProviderTest.java
AuthControllerTest, AuthServiceTest, RefreshTokenServiceTest, JwtProviderTest 등 인증 플로우 관련 모든 테스트 클래스 제거 (총 5개 파일, ~650줄).
배지/랭킹 도메인 테스트
src/test/java/com/gitranker/api/domain/badge/*, src/test/java/com/gitranker/api/domain/ranking/*
BadgeControllerTest, BadgeServiceTest, RankingControllerTest, RankingRecalculationServiceTest 등 배지 및 랭킹 관련 MVC/서비스 테스트 삭제 (총 4개 파일, ~305줄).
사용자 도메인 테스트
src/test/java/com/gitranker/api/domain/user/*, src/test/java/com/gitranker/api/domain/user/service/*, src/test/java/com/gitranker/api/domain/user/vo/*
UserControllerTest, UserRepositoryIT, UserTest, UserPersistenceServiceTest, UserRefreshServiceTest, UserRegistrationServiceTest, ActivityStatisticsTest, RankInfoTest, ScoreTest 등 사용자 엔티티 및 서비스의 모든 테스트 삭제 (총 9개 파일, ~1,197줄).
활동 로그 테스트
src/test/java/com/gitranker/api/domain/log/ActivityLogRepositoryIT.java
활동 로그 리포지토리의 통합 테스트 파일 전체 제거 (~150줄).
배치 프로세서 테스트
src/test/java/com/gitranker/api/batch/processor/ScoreRecalculationProcessorTest.java
점수 재계산 프로세서의 전략 선택, 예외 처리, 사용자명 변경 폴백 등 모든 테스트 케이스 삭제 (~226줄).
인프라/전역 로깅 테스트
src/test/java/com/gitranker/api/global/logging/*, src/test/java/com/gitranker/api/infrastructure/github/*
LogContextTest, LogSanitizerTest, LoggingFilterTest, GitHubApiErrorHandlerTest, GitHubTokenPoolTest 등 로깅 및 GitHub API 핸들러 테스트 삭제 (총 5개 파일, ~748줄).
테스트 설정 리소스
src/test/resources/application-openapi.yml
OpenAPI 프로필용 H2 데이터소스, JPA, OAuth2, JWT, GitHub API 설정이 포함된 테스트 프로파일 설정 파일 전체 삭제 (~49줄).

예상 코드 리뷰 노력

🎯 2 (단순) | ⏱️ ~12분

이 변경은 대부분 파일 삭제로 이루어져 있으며 복잡한 로직 분석이 필요하지 않습니다. 다만 CI/CD 파이프라인과 빌드 설정에 미치는 영향을 검토하기 위해 기본 이해가 필요합니다.

관련 가능성이 있는 PR

🐰 테스트 코드여 안녕, 먼저 떠나겠네
자동화된 검증 일시 멈춰서
스프린트 속도는 높아지겠지
언젠가는 돌아올 그 날까지
CI/CD 워크플로우, 조용히 쉬어가네

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed 제목은 PR의 주요 변경 사항(백엔드 테스트 코드와 CI 검증 코드 제거)을 명확하고 간결하게 요약합니다.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/grb-06-backend-test-ci-removal

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@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: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.github/workflows/ci.yml:
- Around line 14-20: The CI placeholder job named "placeholder" currently only
echoes a notice (step "Verification reset notice") which forces the workflow to
always succeed; replace that echo-only step with a minimal verification step
that actually fails on regressions — e.g., add a step that runs your project's
compile/package command (for JS: install deps and run build/test script; for
Java: mvn -B package -DskipTests=false; for other stacks use the equivalent) or
at minimum run a linter/compile check; ensure the job keeps the "name: CI
Placeholder" and the existing step name or add a new step that executes the real
build command so the workflow fails on build errors instead of always passing.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yml

Review profile: CHILL

Plan: Pro

Run ID: a2bd1a56-9620-4df8-9ff0-5807feb296aa

📥 Commits

Reviewing files that changed from the base of the PR and between 467b3aa and 8fc55d1.

📒 Files selected for processing (28)
  • .github/workflows/ci.yml
  • .github/workflows/deploy.yml
  • build.gradle
  • src/test/java/com/gitranker/api/batch/processor/ScoreRecalculationProcessorTest.java
  • src/test/java/com/gitranker/api/domain/auth/AuthControllerTest.java
  • src/test/java/com/gitranker/api/domain/auth/service/AuthServiceTest.java
  • src/test/java/com/gitranker/api/domain/auth/service/RefreshTokenServiceTest.java
  • src/test/java/com/gitranker/api/domain/badge/BadgeControllerTest.java
  • src/test/java/com/gitranker/api/domain/badge/BadgeServiceTest.java
  • src/test/java/com/gitranker/api/domain/log/ActivityLogRepositoryIT.java
  • src/test/java/com/gitranker/api/domain/ranking/RankingControllerTest.java
  • src/test/java/com/gitranker/api/domain/ranking/RankingRecalculationServiceTest.java
  • src/test/java/com/gitranker/api/domain/user/UserControllerTest.java
  • src/test/java/com/gitranker/api/domain/user/UserRepositoryIT.java
  • src/test/java/com/gitranker/api/domain/user/UserTest.java
  • src/test/java/com/gitranker/api/domain/user/service/UserPersistenceServiceTest.java
  • src/test/java/com/gitranker/api/domain/user/service/UserRefreshServiceTest.java
  • src/test/java/com/gitranker/api/domain/user/service/UserRegistrationServiceTest.java
  • src/test/java/com/gitranker/api/domain/user/vo/ActivityStatisticsTest.java
  • src/test/java/com/gitranker/api/domain/user/vo/RankInfoTest.java
  • src/test/java/com/gitranker/api/domain/user/vo/ScoreTest.java
  • src/test/java/com/gitranker/api/global/auth/jwt/JwtProviderTest.java
  • src/test/java/com/gitranker/api/global/logging/LogContextTest.java
  • src/test/java/com/gitranker/api/global/logging/LogSanitizerTest.java
  • src/test/java/com/gitranker/api/global/logging/LoggingFilterTest.java
  • src/test/java/com/gitranker/api/infrastructure/github/GitHubApiErrorHandlerTest.java
  • src/test/java/com/gitranker/api/infrastructure/github/token/GitHubTokenPoolTest.java
  • src/test/resources/application-openapi.yml
💤 Files with no reviewable changes (27)
  • src/test/java/com/gitranker/api/global/auth/jwt/JwtProviderTest.java
  • src/test/java/com/gitranker/api/global/logging/LoggingFilterTest.java
  • src/test/java/com/gitranker/api/global/logging/LogSanitizerTest.java
  • src/test/resources/application-openapi.yml
  • build.gradle
  • src/test/java/com/gitranker/api/domain/user/UserRepositoryIT.java
  • src/test/java/com/gitranker/api/domain/ranking/RankingRecalculationServiceTest.java
  • src/test/java/com/gitranker/api/domain/badge/BadgeServiceTest.java
  • src/test/java/com/gitranker/api/domain/auth/service/RefreshTokenServiceTest.java
  • src/test/java/com/gitranker/api/domain/user/vo/RankInfoTest.java
  • src/test/java/com/gitranker/api/domain/user/UserTest.java
  • src/test/java/com/gitranker/api/domain/user/vo/ScoreTest.java
  • src/test/java/com/gitranker/api/infrastructure/github/token/GitHubTokenPoolTest.java
  • src/test/java/com/gitranker/api/domain/user/service/UserRefreshServiceTest.java
  • src/test/java/com/gitranker/api/global/logging/LogContextTest.java
  • src/test/java/com/gitranker/api/domain/user/service/UserRegistrationServiceTest.java
  • src/test/java/com/gitranker/api/domain/user/UserControllerTest.java
  • src/test/java/com/gitranker/api/batch/processor/ScoreRecalculationProcessorTest.java
  • src/test/java/com/gitranker/api/domain/log/ActivityLogRepositoryIT.java
  • src/test/java/com/gitranker/api/domain/auth/service/AuthServiceTest.java
  • src/test/java/com/gitranker/api/domain/auth/AuthControllerTest.java
  • src/test/java/com/gitranker/api/domain/user/service/UserPersistenceServiceTest.java
  • src/test/java/com/gitranker/api/infrastructure/github/GitHubApiErrorHandlerTest.java
  • .github/workflows/deploy.yml
  • src/test/java/com/gitranker/api/domain/user/vo/ActivityStatisticsTest.java
  • src/test/java/com/gitranker/api/domain/badge/BadgeControllerTest.java
  • src/test/java/com/gitranker/api/domain/ranking/RankingControllerTest.java

Comment on lines +14 to +20
placeholder:
name: CI Placeholder
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Setup Java 21
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'temurin'
cache: 'gradle'

- name: Grant execute permission for gradlew
run: chmod +x gradlew

- name: Run unit tests
run: ./gradlew test

- name: Run integration tests
run: ./gradlew integrationTest
- name: Verification reset notice
run: echo "Backend automated test verification is temporarily disabled."
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

CI가 항상 성공해 품질 게이트가 사실상 비활성화됩니다.

Line 14~20의 placeholder 잡은 검증 없이 성공 상태만 만들기 때문에, 회귀가 main/develop로 바로 유입될 수 있습니다. 임시 조치라면 최소한 컴파일/패키징 수준의 기본 게이트는 유지해 주세요.

임시 최소 게이트(예: 테스트 제외 빌드) 제안
 jobs:
-  placeholder:
-    name: CI Placeholder
+  placeholder:
+    name: CI Minimal Verification
     runs-on: ubuntu-latest

     steps:
-      - name: Verification reset notice
-        run: echo "Backend automated test verification is temporarily disabled."
+      - name: Checkout
+        uses: actions/checkout@v4
+      - name: Set up JDK 21
+        uses: actions/setup-java@v4
+        with:
+          distribution: temurin
+          java-version: '21'
+          cache: gradle
+      - name: Grant execute permission for gradlew
+        run: chmod +x ./gradlew
+      - name: Minimal build verification (tests temporarily disabled)
+        run: ./gradlew build -x test
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/ci.yml around lines 14 - 20, The CI placeholder job named
"placeholder" currently only echoes a notice (step "Verification reset notice")
which forces the workflow to always succeed; replace that echo-only step with a
minimal verification step that actually fails on regressions — e.g., add a step
that runs your project's compile/package command (for JS: install deps and run
build/test script; for Java: mvn -B package -DskipTests=false; for other stacks
use the equivalent) or at minimum run a linter/compile check; ensure the job
keeps the "name: CI Placeholder" and the existing step name or add a new step
that executes the real build command so the workflow fails on build errors
instead of always passing.

@alexization alexization merged commit 13c2ae5 into develop Apr 9, 2026
2 checks passed
@alexization alexization deleted the feat/grb-06-backend-test-ci-removal branch April 9, 2026 11:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant