Skip to content

feat: test skill 추가#647

Open
Gyuhyeok99 wants to merge 2 commits intosolid-connection:developfrom
Gyuhyeok99:feat/claude-skill
Open

feat: test skill 추가#647
Gyuhyeok99 wants to merge 2 commits intosolid-connection:developfrom
Gyuhyeok99:feat/claude-skill

Conversation

@Gyuhyeok99
Copy link
Contributor

관련 이슈

  • resolves: #

작업 내용

claude.md에 있던 테스트 관련 컨벤션을 별도의 skill로 뺐습니다.
테스트를 모든 세션에서 작업하지 않는데 매번 claude가 이 테스트 컨벤션을 읽는 게 비효율적인 거 같습니다!

이제 테스트 작업 시에 /test로 skill을 활성화시키면 될 거 같습니다. 사실 별도로 안해도 테스트 관련 작업 시키면 디스크립션을 이해하고 알아서 활성화 시키는 것도 확인했습니다.

image

추가로 세레나 MCP도 저는 활성화 시켜서 위에 사진 보면 세레나 MCP가 작동하는 걸 확인할 수 있습니다~

특이 사항

리뷰 요구사항 (선택)

@coderabbitai
Copy link

coderabbitai bot commented Feb 8, 2026

워크스루

이번 변경사항은 프로젝트 문서화, 설정 파일, 그리고 무시 규칙을 정비하는 작업으로 구성되어 있습니다. 다음 5개의 변경사항이 포함되었습니다:

  1. 테스트 기술 문서 추가
    .claude/skills/test/SKILL.md에 새로운 마크다운 파일이 추가되어 테스트 컨벤션과 패턴(TestContainerSpringBootTest, FixtureBuilder 활용, 한국어 메서드명, BDD 구조, @Nested 그룹화)을 상세히 설명합니다.

  2. 주요 테스트 가이드 단순화
    claude.md의 테스트 코드 작성 섹션이 긴 설명에서 간결한 목록 형태로 개선되었으며, 새로운 /test 기술 문서를 참조하도록 안내합니다.

  3. Claude 설정 무시 규칙 추가
    .gitignore에 .claude/settings.local.json 파일을 무시하는 규칙이 추가됩니다.

  4. Serena 프로젝트 설정 파일 생성
    .serena/project.yml에 프로젝트 메타데이터, 언어 서버 설정(Java), 인코딩, 도구 명령어 목록을 포함한 구조화된 설정 파일이 추가됩니다.

  5. 캐시 디렉토리 무시 규칙 추가
    .serena/.gitignore에 /cache 디렉토리를 무시하는 규칙이 추가됩니다.

예상 코드 리뷰 노력

🎯 2 (Simple) | ⏱️ ~10 minutes

제안하는 리뷰어

  • wibaek
  • whqtker
  • Hexeong
  • JAEHEE25
  • lsy1307
  • sukangpunch
🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed PR 제목이 주요 변경사항을 명확하게 반영하고 있습니다. 테스트 관련 컨벤션을 별도의 skill로 분리하는 작업이 정확하게 전달됩니다.
Description check ✅ Passed PR 설명이 작업 내용은 충실하게 기술했으나, 관련 이슈 번호 미입력과 특이사항/리뷰 요구사항 섹션이 미작성 상태입니다.
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 unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

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

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

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
claude.md (1)

367-367: ⚠️ Potential issue | 🟡 Minor

test.md 참조가 오래된 경로를 가리키고 있을 수 있습니다.

Line 367의 test.md 참조가 현재 PR에서 추가된 .claude/skills/test/SKILL.md와 일치하지 않습니다. 테스트 가이드가 skill 파일로 이동했다면 이 참조도 업데이트하는 것이 좋겠습니다.

제안하는 수정
-- **테스트 가이드**: `test.md` 파일 참고
+- **테스트 가이드**: `.claude/skills/test/SKILL.md` 파일 참고 (`/test` skill로 자동 로드)
🤖 Fix all issues with AI agents
In @.claude/skills/test/SKILL.md:
- Around line 32-36: Add a language identifier to the Markdown code block that
shows the directory tree so markdownlint MD040 is resolved: update the block
containing "[Entity]FixtureBuilder.java" and "[Entity]Fixture.java" to start
with ```text (or ```plaintext) instead of plain ```, keeping the rest of the
block unchanged.
- Around line 104-123: The example incorrectly accesses a private final field
chatRoomFixtureBuilder on ChatRoomFixture; change the example to access the
builder via a public accessor or inject the builder into the test instead—e.g.,
call a getter on ChatRoomFixture (e.g.,
ChatRoomFixture.getChatRoomFixtureBuilder()) or add an `@Autowired`
ChatRoomFixtureBuilder field in the test and use that builder to call
chatRoom().isGroup(true).mentoringId(100L).create(); ensure you reference the
ChatRoomFixture class and its chatRoom(...) convenience method and the builder's
chatRoom() method when making the change.
- Around line 237-246: The exception assertion example is incorrect: replace the
use of assertThatCode(() -> method()) with assertThatThrownBy(() -> method()) so
the test actually asserts that an exception is thrown; update the sample to call
assertThatThrownBy with the same thrown-exception expectations
(isInstanceOf(CustomException.class).hasMessage("error message")) and leave the
assertAll multi-assert example unchanged.

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