xunit について
xunit は、xUnit v2 または v3 のテスト追加、実行、デバッグ、修正を支援するリポジトリ向けスキルです。実行モデルの判定、対象を絞った検証、診断出力の制限を重視し、計画・レビュー・検証を繰り返します。
主な機能
- 01xUnit のバージョンと実行モデルの判定
- 02テスト作成と修正のガイド
- 03対象を絞ったテスト実行とフィルター
- 04診断出力の制限とフィルタリング
- 05計画と最終検証の実施
活用シーン
- 01適切なランナーで xUnit テストを実行
- 02CI に対応する回帰テストの追加
- 03全ログを出さずに失敗を診断
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ managedcode/ dotnet-skills --skill xunitインストール後、Claude Code で/xunitを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
manifest.jsonreferences/anti-patterns.mdpatterns.mdxunit.md詳細
xUnit.net
診断出力の上限
ネイティブのテスト進行状況と ANSI を表示したままにします。検出されたランナーがサポートするフラグ(MTP/TUnit の場合は --progress on --ansi on)を使い、VSTest で MTP のスイッチを使わないでください。コンソールログは Warning 以上に保ち、簡潔な最終サマリーを 1 つだけ出力します。進行状況の再描画、成功したテストの出力、Information/Debug/Trace のログをモデルコンテキストに再出力しないでください。失敗またはクラッシュ時には、失敗したテスト/リソース、根本原因のエラー、関連するスタックフレームのみを表示します。診断ごとに重複を除去し、80 行/8 KiB を上限とします。コンソール/ホスト/ブラウザーのログ、HTML、TRX、クラッシュアーティファクト全体を出力しないでください。必要なアーティファクトはコンテキスト外にサイズ制限付きで保持し、リンクを示したうえで、範囲を限定した正確な抜粋を確認します。キャプチャ/フィルタリング後もランナーの終了コードを保持し、切り詰めた場合はその旨を伝えてください。出力がないことだけでは、ハングしたとは判断できません。
次の場合に使用
- リポジトリで xUnit v2 または xUnit v3 を使用している
- xUnit テストの追加、実行、デバッグ、修復が必要
- プロジェクトで VSTest と Microsoft.Testing.Platform のどちらを使用しているか、チームが判断できていない
メリット
- コード、ドキュメント、設定、テスト、CI、レビューアーティファクトなど、具体的なプロジェクトの変更を作成します
- 明示的な計画、検証、最終確認のスキルにより、曖昧さを減らします
- 再利用可能なプロジェクトのコンテキストを残し、今後の作業をより迅速かつ安全にします
使用しない場合
- TUnit プロジェクト
- MSTest プロジェクト
- xUnit 固有の仕組みを扱わない一般的なテスト戦略
入力
- 最も近い
AGENTS.md - テストプロジェクトファイルとパッケージ参照
- テストプロジェクトで有効なランナーモデル
クイックスタート
- 最も近い
AGENTS.mdを読み、対象範囲と制約を確認します。 - 成果が許容できる状態になるまで、このスキルの
WorkflowをRalph Loopで実行します。 - 具体的な成果物と検証の証拠を含めて、
Required Result Formatを返します。
ワークフロー
- コマンドを変更する前に、有効な xUnit モデルを検出します。
xunitは通常 v2 を意味しますxunit.v3は v3 を意味しますxunit.runner.visualstudioとMicrosoft.NET.Test.Sdkの組み合わせは、通常 VSTest との互換性が有効であることを意味しますTestingPlatformDotnetTestSupportまたはUseMicrosoftTestingPlatformRunnerは、Microsoft.Testing.Platform が使用されていることを意味します
AGENTS.mdから、リポジトリで実際に使用しているtestコマンドを確認します。明示的なコマンドがまだない場合は、dotnet test PROJECT_OR_SOLUTIONから始めます。- ランナーモデルを一貫させます。
- xUnit v2 は通常 VSTest 経由で実行します
- xUnit v3 は
dotnet runでスタンドアロン実行可能ファイルとして実行できます - xUnit v3 は Microsoft.Testing.Platform と統合して実行することもできます
- Microsoft.Testing.Platform での実行に VSTest 専用のスイッチを混在させないでください
- まず、最も範囲の狭い有用な対象を実行します。
- 1 つのプロジェクト
- 1 つのクラス
- 1 つのトレイト
- 1 つのメソッド
- 安定したデータ駆動型のカバレッジには
[Theory]を、単一経路の不変条件チェックには[Fact]を優先します。 xunit.analyzersが存在する場合は有効にしたままにします。アナライザーの指摘は安易に無効化せず、修正します。
未設定の場合の導入
xUnit が求められているものの、まだ設定されていない場合:
- まず現在のフレームワークを検出します。
rg -n "xunit(\\.v3)?|xunit\\.runner\\.visualstudio|TestingPlatformDotnetTestSupport|UseMicrosoftTestingPlatformRunner|TUnit|MSTest" -g '*.csproj' .
- リポジトリが現在
TUnitまたはMSTestを使用している場合は、自動移行しないでください。明示的に移行が依頼されていない限り、status: not_applicableを返します。 - xUnit の採用が明示的に依頼されている場合は、対象のテストプロジェクトにパッケージを追加します。
dotnet add TEST_PROJECT.csproj package xunit.v3- VSTest ブリッジは任意です:
dotnet add TEST_PROJECT.csproj package xunit.runner.visualstudio
- テストコマンドとランナーに関するメモを
AGENTS.mdに追加します。 dotnet test TEST_PROJECT.csprojまたはリポジトリで定義された xUnit コマンドを実行し、status: configuredまたはstatus: improvedを返します。
提供する成果
- リポジトリで有効な xUnit バージョンとランナーに適合する xUnit テスト
- ローカル実行と CI 実行で使えるコマンド
- より広い範囲のスイートを実行する前の、対象を絞った検証
検証
- 選択した CLI がアクティブなランナーモデルに一致していること
- テストフィルターや対象を絞った実行が、そのランナーで有効であること
- テストで決定論的な入力とアサーションを使用していること
- リポジトリで例外が文書化されていない限り、xUnit 固有のアナライザーを有効にしておくこと
Ralph Loop
ドキュメント、アーキテクチャ、テスト、ツールに関する作業を含む、すべてのタスクで Ralph Loop を使用してください。
- まず計画を立てます(必須):
- 現状を分析する
- 目標とする結果、制約、リスクを定義する
- 詳細な実行計画を作成する
- 最後に実行する最終検証スキルを、順序と理由とともに列挙する
- 計画したステップを1つ実行し、具体的な差分を作成します。
- 結果をレビューし、次に必要な修正を実行可能な形で記録します。
- 修正を小さな単位で適用し、関連するチェックまたはレビュー手順を再実行します。
- 各イテレーションの後に計画を更新します。
- 結果が許容できる状態になるか、明示された例外だけが残るまで繰り返します。
- 依存関係が不足している場合は、セットアップするか、明示的な理由と代替手順を添えて
status: not_applicableを返します。
必須の結果形式
status:complete|clean|improved|configured|not_applicable|blockedplan:簡潔な計画と現在のイテレーションのステップactions_taken:実施した具体的な変更validation_skills:最後に実行したスキル、または理由を添えてスキップしたスキルverification:コマンド、チェック、またはレビューで確認した内容の要約remaining:未解決の主な項目、またはnone
実行を伴わないセットアップのみの依頼では、status: configured と正確な次のコマンドを返します。
リファレンスの読み込み
リクエストの例
- 「この xUnit スイートを正しく実行してください。」
- 「xUnit v3 のテストコマンドを修正してください。」
- 「xUnit の回帰テストを追加し、CI との互換性を維持してください。」