home / skills / icartsh / icartsh_plugin / dotnet-test

dotnet-test skill

/icartsh-plugin/skills/dotnet-test

npx playbooks add skill icartsh/icartsh_plugin --skill dotnet-test

Review the files below or copy the command above to add this skill to your agents.

Files (5)
SKILL.md
5.2 KB
---
name: dotnet-test
version: 0.1.0
kind: cli
description: dotnet CLI를 사용하여 .NET 테스트를 실행합니다. 유닛 테스트 실행, 코드 커버리지 리포트 생성 또는 벤치마크 수행 시 사용합니다.
inputs:
  target: [all, project, specific]
  configuration: [Debug, Release]
  coverage: ['true', 'false']
  project_path: string
contracts:
  success: '테스트 통과 (실패 없음); 요청 시 커버리지 데이터 생성 완료'
  failure: '0이 아닌 종료 코드, 테스트 실패 또는 커버리지 생성 에러 발생'
---

# .NET Test Skill (Entry Map)

> **목표:** 정확한 테스트 절차를 안내합니다.

## 빠른 시작 (택일)

- **유닛 테스트 실행** → `references/run-unit-tests.md`
- **커버리지 리포트 생성** → `references/generate-coverage.md`
- **벤치마크 실행** → `references/run-benchmarks.md`

## 사용 시기

- 유닛 테스트 실행 (xUnit, NUnit)
- coverlet을 이용한 코드 커버리지 리포트 생성
- BenchmarkDotNet을 이용한 성능 벤치마크 수행
- 테스트 스위트를 통한 코드 변경 사항 검증
- 테스트 실행 시간 측정

**다음의 경우에는 사용하지 마세요:** 코드 빌드 (dotnet-build), 포맷팅 (code-format), 또는 정적 분석 (code-analyze)

## 입력 및 출력 (Inputs & Outputs)

**입력:** `target` (all/project/specific), `configuration` (Debug/Release), `coverage` (true/false), `project_path` (기본값: 모든 테스트 프로젝트)

**출력:** 테스트 결과 (성공/실패 카운트), 커버리지 리포트 (요청 시), 벤치마크 결과, 종료 코드 (0=성공)

**가드레일:** ./dotnet 디렉토리 내에서만 작업하며, 실패 사항을 명확히 보고하고, 허가 없이 테스트를 건너뛰지 않습니다.

## 탐색 (Navigation)

**1. 유닛 테스트 실행** → [`references/run-unit-tests.md`](references/run-unit-tests.md)

- 모든 테스트 실행, 특정 프로젝트 테스트 실행, 테스트 실패 트러블슈팅

**2. 커버리지 리포트 생성** → [`references/generate-coverage.md`](references/generate-coverage.md)

- 커버리지 데이터 수집, 리포트 생성 (HTML/Cobertura), 커버리지 지표 분석

**3. 벤치마크 실행** → [`references/run-benchmarks.md`](references/run-benchmarks.md)

- 성능 벤치마크 수행, 결과 비교, 데이터 기반 최적화

## 일반적인 패턴 (Common Patterns)

### 모든 테스트 실행 (빠른 속도)

```bash
cd ./dotnet
dotnet test
```

### 상세 출력을 포함한 테스트 실행

```bash
cd ./dotnet
dotnet test --verbosity normal
```

### 특정 테스트 프로젝트 실행

```bash
cd ./dotnet
dotnet test console-app.Tests/PigeonPea.Console.Tests.csproj
```

### 커버리지와 함께 테스트 실행

```bash
cd ./dotnet
dotnet test --collect:"XPlat Code Coverage"
```

### 테스트 실행 및 커버리지 리포트 생성

```bash
cd ./dotnet
dotnet test --collect:"XPlat Code Coverage" --results-directory ./TestResults
# 커버리지 파일: ./TestResults/{guid}/coverage.cobertura.xml
```

### 이름으로 테스트 필터링

```bash
cd ./dotnet
dotnet test --filter "FullyQualifiedName~FrameTests"
```

### 카테고리로 테스트 필터링

```bash
cd ./dotnet
dotnet test --filter "Category=Unit"
```

### Release 구정으로 테스트 실행

```bash
cd ./dotnet
dotnet test --configuration Release
```

### 벤치마크 실행

```bash
cd ./dotnet/benchmarks
dotnet run -c Release
```

## 트러블슈팅 (Troubleshooting)

**테스트 실패:** Assertion 실패에 대한 테스트 출력을 확인하세요. 디버깅은 `references/run-unit-tests.md`를 참조하세요.

**커버리지 미생성:** coverlet.collector가 설치되어 있는지 확인하세요. `references/generate-coverage.md`를 참조하세요.

**벤치마크 실행 실패:** Release 구성을 사용해야 합니다. `references/run-benchmarks.md`를 참조하세요.

**테스트 실행 속도 저하:** 테스트 필터 사용, 병렬 실행 또는 빌드 후 `--no-build` 옵션을 사용하세요.

**테스트 발견 실패:** 프로젝트 참조를 확인하고 테스트 프레임워크 패키지가 설치되어 있는지 확인하세요.

## 성공 지표 (Success Indicators)

```
Passed!  - Failed:     0, Passed:    42, Skipped:     0, Total:    42
```

테스트 아티팩트 위치: `./dotnet/TestResults/`

커버리지 리포트 위치: `./dotnet/TestResults/coverage.cobertura.xml`

## 통합 (Integration)

**테스트 전:** dotnet-build (코드가 빌드되었는지 확인)
**테스트 후:** code-analyze (정적 분석), code-review (품질 검사)

## 테스트 프레임워크

이 저장소는 다음을 사용합니다:

- 유닛 테스트를 위한 **xUnit** (console-app.Tests, shared-app.Tests, windows-app.Tests)
- 코드 커버리지를 위한 **coverlet.collector**
- 성능 벤치마크를 위한 **BenchmarkDotNet**

## 관련 링크 (Related)

- [`./dotnet/README.md`](../../../dotnet/README.md) - 프로젝트 구조
- [`./dotnet/ARCHITECTURE.md`](../../../dotnet/ARCHITECTURE.md) - 아키텍처
- [`.pre-commit-config.yaml`](../../../.pre-commit-config.yaml) - Pre-commit hooks
- [`dotnet-build` skill](../dotnet-build/SKILL.md) - 빌드 스킬