GitHub Copilot Chat 보기를 사용하여 단위 테스트 생성
Visual Studio Code 채팅 보기는 GitHub Copilot 단위 테스트를 생성하는 기본 위치입니다. 채팅 보기에서 테스트 프레임워크를 구성하고, 파일 또는 선택에 대한 테스트를 생성하고, 테스트가 프로젝트의 규칙과 일치할 때까지 결과를 구체화할 수 있습니다. 이 단원에서는 생성된 테스트를 테스트 파일에 직접 쓰는 에이전트 모드를 중심으로 단일 채팅 프롬프트에서 결과 테스트를 실행하고 실패를 반복할 수 있습니다. 또한 요청 모드 를 미리 사용하여 파일을 변경하지 않고 테스트 옵션을 탐색할 수도 있습니다.
채팅 보기 열기
다음 옵션 중 하나를 사용하여 채팅 보기를 엽니다.
- Ctrl + Alt + I (Windows/Linux) 또는 Cmd + Alt + I (macOS)를 누릅니다.
- 제목 표시줄에서 GitHub Copilot 아이콘을 선택한 다음 채팅 전환을 선택합니다.
채팅 보기가 보조 사이드바에서 열리고 보내는 모든 프롬프트에 영향을 주는 세 가지 구성 선택 항목을 제공합니다.
- 에이전트 대상: 에이전트가 실행되는 위치입니다. 로컬을 선택하여 작업 영역, 도구 및 모델에 대한 모든 권한이 있는 편집기에서 에이전트를 대화형으로 실행합니다.
- 에이전트: AI가 세션에 대해 수행하는 역할입니다. 기본 제공 로컬 에이전트는 Ask, Plan 및 Agent입니다.
- 사용 권한 수준: 도구 및 터미널 명령을 호출할 때 에이전트가 가지고 있는 자율성입니다. 옵션은 기본 승인, 바이패스 승인 및 자동 제어입니다.
단위 테스트 생성의 경우 권장되는 시작점은 기본 승인이 있는 에이전트입니다. 에이전트 모드는 파일을 편집하고, 터미널 명령을 실행하고, 테스트를 다시 실행할 수 있으므로 "이 메서드에 대한 테스트 생성"과 같은 프롬프트를 수행하고 검토하기만 하면 되는 작업 테스트 파일을 생성할 수 있습니다. 기본 승인은 각 도구 호출을 확인하도록 요청하여 루프를 유지합니다.
필요에 따라 요청 모드를 사용하여 먼저 테스트 옵션을 탐색합니다.
파일을 수정하거나 도구를 호출하지 않고 채팅에서 질문 모드가 질문에 답변합니다. 따라서 에이전트에서 변경 내용을 적용하기 전에 접근 방식을 계획하려는 경우에 적합합니다. 다음을 수행하려는 경우 Ask 모드를 사용합니다.
- 구조체에 커밋하기 전에 복잡한 메서드에 대한 후보 테스트 사례를 비교합니다.
- 처리할 가치가 있는 에지 사례 및 경계 조건을 식별합니다.
- 테스트 프레임워크 또는 어설션 스타일에 대한 권장 사항을 가져옵니다.
- 디스크에 기록하지 않고 채팅에서 예제 테스트를 참조하세요.
분석에 Ask 모드를 사용하려면:
채팅 보기를 열고 에이전트 선택기에서 Ask 를 선택합니다.
관련 파일 또는 선택한 내용을 맥락으로 첨부하세요(예:
#selection를 사용하거나 파일을 끌어다 놓기).분석 질문을 합니다. 예를 들어:
What edge cases should I cover when testing the CalculateDiscount method? List the scenarios and explain why each one matters.응답을 검토한 다음 에이전트 선택기를 에이전트 로 전환하여 실제 테스트를 생성합니다.
를 사용하여 테스트 프레임워크 설정 /setupTests
프로젝트에 테스트 프레임워크가 아직 구성되어 있지 않은 경우 GitHub Copilot 권장하고 구성 단계를 안내할 수 있습니다.
/setupTests 슬래시 명령은 모든 에이전트에서 작동하지만 에이전트 모드는 패키지를 설치하고 테스트 프로젝트를 만들 수도 있습니다.
채팅 보기를 열고 에이전트 선택기에서 에이전트 를 선택합니다.
/setupTests채팅 입력 필드에 명령을 입력합니다.에이전트가 패키지를 설치하고, 테스트 프로젝트를 스캐폴드하고, Visual Studio Code 테스트 확장을 권장하도록 제안하는 도구 호출 및 터미널 명령을 확인합니다.
/setupTests 는 새 테스트 프로젝트를 시작하거나 아직 테스트가 포함되지 않은 프로젝트를 온보딩할 때 가장 유용합니다.
다음을 사용하여 테스트 생성 /tests
/tests 슬래시 명령은 편집기에서 현재 활성화된 코드에 대한 단위 테스트를 생성합니다. 에이전트 모드에서 생성된 테스트는 적절한 테스트 파일에 직접 기록됩니다. GitHub Copilot 기존 테스트 프레임워크 및 코딩 스타일을 검색하고 일치하는 테스트를 생성합니다.
전체 파일에 대한 테스트를 생성하려면 다음을 수행합니다.
테스트할 애플리케이션 코드 파일을 엽니다.
채팅 보기를 열고 에이전트 가 선택되어 있는지 확인합니다.
채팅 입력 필드에
/tests를 입력한 다음, 추가 지침을 입력합니다. 예를 들어:/tests Generate unit tests for the methods in this file. Include success, failure, and edge cases.에이전트가 컨텍스트를 읽고 테스트를 작성한 다음(선택적으로) 실행하는 데 사용하는 도구 호출을 확인합니다.
에이전트가 적용한 변경 내용을 검토합니다.
에이전트는 테스트가 사용 가능한 경우 기존 테스트 파일에 테스트를 추가하거나 적절한 위치에 새 테스트 파일을 만듭니다. 각 변경 사항을 확인할 수 있도록 diff가 편집기에서 나타납니다.
유지 또는 실행 취소를 선택하여 변경 내용을 적용하거나 취소합니다.
특정 메서드 또는 코드 블록에 대한 테스트를 생성하려면 다음을 수행합니다.
애플리케이션 코드 파일을 엽니다.
테스트할 메서드 또는 블록을 선택합니다.
채팅 보기에서
/tests를 입력한 다음 선택한 항목을 참조하는 지침을 입력합니다. 예를 들어:/tests Generate unit tests for the selected method. Validate both success and failure, and include edge cases.결과 변경 내용을 검토하고 유지하거나 삭제합니다.
자연어 프롬프트를 사용하여 테스트 생성
슬래시 명령을 사용할 필요가 없습니다. 에이전트는 충분한 컨텍스트를 포함할 때 자연어 프롬프트에서 테스트를 생성합니다. 예시들:
- "이 파일의 메서드에 대한 xUnit 테스트를 생성하고 Calculator.Tests 프로젝트에 추가합니다."
- 음수 값과 0에 대한 경계 사례를 포함하여
CalculateDiscount메서드에 대한 단위 테스트를 작성하세요. 테스트를 작성한 후 실행합니다." - "이 모듈에서 데이터 액세스 계층에 대한 통합 테스트를 만듭니다."
에이전트가 명령을 실행할 수 있으므로 동일한 프롬프트에 확인 단계를 포함할 수 있습니다. 에이전트에 테스트를 작성한 후 실행하도록 요청하면 작업을 다시 전달하기 전에 명백한 오류를 catch하고 수정할 수 있습니다.
프롬프트에 컨텍스트 추가
생성된 테스트의 품질은 제공하는 컨텍스트에 따라 달라집니다. 다음 옵션 중 하나 이상을 사용하여 채팅 보기 프롬프트에 컨텍스트를 연결합니다.
- 컨텍스트 추가 단추: 빠른 선택을 열어 파일, 폴더, 기호 또는 현재 편집기 선택을 추가합니다.
- 끌어서 놓기: 탐색기 보기에서 파일을 끌어다 놓거나 편집기 탭을 채팅 보기로 끌어 콘텐츠를 첨부합니다.
-
#멘션:#를 입력한 다음 파일, 폴더 또는 기호 이름을 입력하여 컨텍스트로 추가합니다.#selection사용하여 현재 편집기 선택을 연결하거나#codebase사용하여 GitHub Copilot 작업 영역에서 관련 컨텍스트를 검색할 수 있도록 합니다. - 외부 파일: 편집기에서 markdown 파일(예: 기여자 지침 또는 테스트 규칙)을 열고 컨텍스트 추가를 통해 첨부합니다. 에이전트는 콘텐츠를 사용하여 생성된 테스트를 셰이프합니다.
예를 들어 편집기에서 단일 메서드가 표시되는 경우 다음 Write a unit test for the method in #editor을 요청할 수 있습니다. 여러 메서드가 보이거나 대상 메서드가 보이는 영역을 벗어나는 경우, 먼저 해당 코드를 선택한 후 다음과 같이 질문하세요: #selection write unit tests for the selected code
에이전트의 변경 내용 검토 및 구체화
에이전트가 테스트를 테스트 프로젝트에 직접 작성하더라도, 제어 권한은 사용자에게 있습니다:
- diff 검토: 에이전트가 변경한 각 파일이 편집기에서 열리고 제안된 편집 내용이 강조 표시됩니다. 수락하기 전에 diff를 검토하세요.
- 유지 또는 실행 취소: 변경 사항을 적용하려면 유지를 사용하고, 되돌리려면 실행 취소를 사용하세요. 편집기에서 개별 덩어리를 되돌릴 수도 있습니다.
- 빌드 및 실행: 변경 내용을 유지한 후 테스트 프로젝트를 빌드하고 테스트 탐색기 또는 터미널에서 테스트를 실행하여 모든 것이 컴파일되고 통과하는지 확인합니다.
- 반복: 동일한 채팅 세션에서 후속 프롬프트를 사용하여 특정 테스트를 구체화하거나, 사례를 더 추가하거나, 메서드 이름을 바꿉니다.
사용자 지정 지침으로 테스트 생성을 맞춤 설정
조직에 특정 테스트 요구 사항이 있는 경우 출력이 표준과 일치할 수 있도록 GitHub Copilot 테스트를 생성하는 방법을 사용자 지정할 수 있습니다. 사용자 지정 지침을 통해 다음을 수행할 수 있습니다.
- 기본 설정 테스트 프레임워크를 지정합니다(예: NUnit 대신 xUnit).
- 테스트 클래스 및 메서드에 대한 명명 규칙을 정의합니다.
- Arrange-Act-Assert 패턴과 같은 코드 구조 기본 설정을 지정합니다.
- 경계 값에 대한 매개 변수가 있는 테스트와 같은 특정 테스트 패턴을 요청합니다.
작업 영역의 *.instructions.md 파일에 사용자 지정 지침을 저장합니다. 메타데이터 필드를 applyTo 사용하여 테스트 파일에만 지침을 적용합니다. 예를 들어, applyTo: tests/** 값은 지침의 범위를 tests/ 디렉터리의 파일로 한정합니다. 소스 제어에서 파일을 공유하면 팀의 모든 개발자에게 동일한 테스트 컨텍스트가 제공됩니다.
Important
생성된 테스트 사례는 모든 시나리오를 다루지 않을 수 있습니다. 테스트 품질을 보장하기 위해서는 수동 검토 및 코드 검토가 여전히 필요합니다.