mcpField
X
xunit

xunit

github.com/managedcodeテスト・品質49698 回インストール今日更新
リポジトリ

xunit について

xunit は、xUnit v2 または v3 のテスト追加、実行、デバッグ、修正を支援するリポジトリ向けスキルです。実行モデルの判定、対象を絞った検証、診断出力の制限を重視し、計画・レビュー・検証を繰り返します。

主な機能

  1. 01xUnit のバージョンと実行モデルの判定
  2. 02テスト作成と修正のガイド
  3. 03対象を絞ったテスト実行とフィルター
  4. 04診断出力の制限とフィルタリング
  5. 05計画と最終検証の実施

活用シーン

  1. 01適切なランナーで xUnit テストを実行
  2. 02CI に対応する回帰テストの追加
  3. 03全ログを出さずに失敗を診断

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/managedcode/dotnet-skills --skill xunit

インストール後、Claude Code で/xunitを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

manifest.json
references/
anti-patterns.md
patterns.md
xunit.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
  • テストプロジェクトファイルとパッケージ参照
  • テストプロジェクトで有効なランナーモデル

クイックスタート

  1. 最も近い AGENTS.md を読み、対象範囲と制約を確認します。
  2. 成果が許容できる状態になるまで、このスキルの Workflow を Ralph Loop で実行します。
  3. 具体的な成果物と検証の証拠を含めて、Required Result Format を返します。

ワークフロー

  1. コマンドを変更する前に、有効な xUnit モデルを検出します。
    • xunit は通常 v2 を意味します
    • xunit.v3 は v3 を意味します
    • xunit.runner.visualstudio と Microsoft.NET.Test.Sdk の組み合わせは、通常 VSTest との互換性が有効であることを意味します
    • TestingPlatformDotnetTestSupport または UseMicrosoftTestingPlatformRunner は、Microsoft.Testing.Platform が使用されていることを意味します
  2. AGENTS.md から、リポジトリで実際に使用している test コマンドを確認します。明示的なコマンドがまだない場合は、dotnet test PROJECT_OR_SOLUTION から始めます。
  3. ランナーモデルを一貫させます。
    • xUnit v2 は通常 VSTest 経由で実行します
    • xUnit v3 は dotnet run でスタンドアロン実行可能ファイルとして実行できます
    • xUnit v3 は Microsoft.Testing.Platform と統合して実行することもできます
    • Microsoft.Testing.Platform での実行に VSTest 専用のスイッチを混在させないでください
  4. まず、最も範囲の狭い有用な対象を実行します。
    • 1 つのプロジェクト
    • 1 つのクラス
    • 1 つのトレイト
    • 1 つのメソッド
  5. 安定したデータ駆動型のカバレッジには [Theory] を、単一経路の不変条件チェックには [Fact] を優先します。
  6. xunit.analyzers が存在する場合は有効にしたままにします。アナライザーの指摘は安易に無効化せず、修正します。

未設定の場合の導入

xUnit が求められているものの、まだ設定されていない場合:

  1. まず現在のフレームワークを検出します。
    • rg -n "xunit(\\.v3)?|xunit\\.runner\\.visualstudio|TestingPlatformDotnetTestSupport|UseMicrosoftTestingPlatformRunner|TUnit|MSTest" -g '*.csproj' .
  2. リポジトリが現在 TUnit または MSTest を使用している場合は、自動移行しないでください。明示的に移行が依頼されていない限り、status: not_applicable を返します。
  3. xUnit の採用が明示的に依頼されている場合は、対象のテストプロジェクトにパッケージを追加します。
    • dotnet add TEST_PROJECT.csproj package xunit.v3
    • VSTest ブリッジは任意です:dotnet add TEST_PROJECT.csproj package xunit.runner.visualstudio
  4. テストコマンドとランナーに関するメモを AGENTS.md に追加します。
  5. dotnet test TEST_PROJECT.csproj またはリポジトリで定義された xUnit コマンドを実行し、status: configured または status: improved を返します。

提供する成果

  • リポジトリで有効な xUnit バージョンとランナーに適合する xUnit テスト
  • ローカル実行と CI 実行で使えるコマンド
  • より広い範囲のスイートを実行する前の、対象を絞った検証

検証

  • 選択した CLI がアクティブなランナーモデルに一致していること
  • テストフィルターや対象を絞った実行が、そのランナーで有効であること
  • テストで決定論的な入力とアサーションを使用していること
  • リポジトリで例外が文書化されていない限り、xUnit 固有のアナライザーを有効にしておくこと

Ralph Loop

ドキュメント、アーキテクチャ、テスト、ツールに関する作業を含む、すべてのタスクで Ralph Loop を使用してください。

  1. まず計画を立てます(必須):
    • 現状を分析する
    • 目標とする結果、制約、リスクを定義する
    • 詳細な実行計画を作成する
    • 最後に実行する最終検証スキルを、順序と理由とともに列挙する
  2. 計画したステップを1つ実行し、具体的な差分を作成します。
  3. 結果をレビューし、次に必要な修正を実行可能な形で記録します。
  4. 修正を小さな単位で適用し、関連するチェックまたはレビュー手順を再実行します。
  5. 各イテレーションの後に計画を更新します。
  6. 結果が許容できる状態になるか、明示された例外だけが残るまで繰り返します。
  7. 依存関係が不足している場合は、セットアップするか、明示的な理由と代替手順を添えて status: not_applicable を返します。
必須の結果形式
  • status:complete | clean | improved | configured | not_applicable | blocked
  • plan:簡潔な計画と現在のイテレーションのステップ
  • actions_taken:実施した具体的な変更
  • validation_skills:最後に実行したスキル、または理由を添えてスキップしたスキル
  • verification:コマンド、チェック、またはレビューで確認した内容の要約
  • remaining:未解決の主な項目、または none

実行を伴わないセットアップのみの依頼では、status: configured と正確な次のコマンドを返します。

リファレンスの読み込み

リクエストの例

  • 「この xUnit スイートを正しく実行してください。」
  • 「xUnit v3 のテストコマンドを修正してください。」
  • 「xUnit の回帰テストを追加し、CI との互換性を維持してください。」

コメント