Agent Skills by ALSEL
Anthropic ClaudeDevOps・インフラ⭐ リポ 0品質スコア 50/100

run-tests

`dotnet test` を使って .NET のテストを実行します。「run tests」「test filter」「TRX report」「blame-hang」などのキーワードが出た際や、テストプラットフォーム(VSTest または Microsoft.Testing.Platform)の検出、テストフレームワーク(MSTest・xUnit・NUnit・TUnit)の特定、フィルター適用、テスト実行エラーのトラブルシューティングが必要な場面で使用してください。`--filter-class`・`--blame-hang-timeout`・`--report-trx` などのオプション指定にも対応します。なお、テストコードの生成・CI/CDパイプラインの設定・テストロジックのデバッグには使用しないでください。

description の原文を見る

> Runs .NET tests with dotnet test. Use when user says "run tests", "run my tests", "run these tests", "execute tests", "dotnet test", "test filter", "filter by category", "filter by class", "combine filters", "run only specific tests", "integration tests", "unit tests", "tests not running", "hang timeout", "blame-hang", "blame-crash", "crash dump", "TRX report", "TRX", "test report", "generate TRX", "TUnit", "treenode-filter", "target framework", "multi-TFM", or needs to detect the test platform (VSTest or Microsoft.Testing.Platform), identify the test framework, apply test filters, or troubleshoot test execution failures. Covers MSTest, xUnit, NUnit, and TUnit across both VSTest and MTP platforms. Also use for --filter-class, --filter-trait, --report-trx, --logger trx, --blame-hang-timeout, and other platform-specific filter and reporting syntax. DO NOT USE FOR: writing or generating test code, CI/CD pipeline configuration, or debugging failing test logic.

SKILL.md 本文

.NET テストの実行

テストプラットフォームとフレームワークを検出し、dotnet test を使用してテストを実行し、フィルタを適用します。

使用する場合

  • ユーザーが .NET プロジェクトでテストを実行したい場合
  • ユーザーがフィルタを使用してテストのサブセットを実行する必要がある場合
  • ユーザーがテストプラットフォーム(VSTest vs MTP)またはフレームワークの検出について支援が必要な場合
  • ユーザーが自分のセットアップの正しいフィルタ構文を理解したい場合

使用しない場合

  • ユーザーがテストコードを書いたり生成したりする必要がある場合(MSTest の場合は writing-mstest-tests を使用、他のフレームワークの場合は一般的なコーディング支援を使用)
  • ユーザーが VSTest から MTP への移行が必要な場合(migrate-vstest-to-mtp を使用)
  • ユーザーが再ビルドなしで失敗したテストを反復処理したい場合(mtp-hot-reload を使用)
  • ユーザーが CI/CD パイプラインの設定が必要な場合(CI 固有のスキルを使用)
  • ユーザーがテストをデバッグする必要がある場合(デバッグスキルを使用)

入力

入力必須説明
プロジェクトまたはソリューションパスいいえテストプロジェクト(.csproj)またはソリューション(.sln)へのパス。デフォルトはカレントディレクトリ
フィルタ式いいえ特定のテストを選択するためのフィルタ式
ターゲットフレームワークいいえ実行対象のターゲットフレームワークモニカー(例:net8.0

重要なルール — クロスプラットフォームエラーを回避

以下は最も一般的なエージェントの間違いです。進める前によく理解してください:

ルール理由
MTP プロジェクトでは --logger trx を使用しないMTP は --report-trx を使用します(TrxReport 拡張機能パッケージが必要)
VSTest プロジェクトでは --report-trx を使用しないVSTest は --logger trx を使用します
.NET SDK 10+ で -- --arg を使用しないSDK 10+ は MTP 引数を直接渡します:dotnet test --project . --report-trx
.NET SDK 8/9 で MTP の -- を省略しないSDK 8/9 ではセパレータが必須です:dotnet test -- --report-trx
MTP 上の xUnit v3 では --filter "ClassName=..." を使用しないMTP 上の xUnit v3 は --filter-class--filter-method--filter-trait を使用します
SDK 10+ でベアの位置引数パスを使用しない--project <path> または --solution <path> を使用してください
MTP プロジェクトでは --blame を使用しないMTP は --blame-crash--blame-hang-timeout を別々に使用します(それぞれ拡張機能パッケージが必要)
MTP では --collect "Code Coverage" を使用しないMTP は --coverage を使用します(CodeCoverage 拡張機能パッケージが必要)

ワークフロー

クイックリファレンス

プラットフォームSDKコマンドパターン
VSTestすべてdotnet test [<path>] [--filter <expr>] [--logger trx]
MTP8 または 9dotnet test [<path>] -- <MTP_ARGS>
MTP10+dotnet test --project <path> <MTP_ARGS>

常に確認するべき検出ファイル(順序通り):global.json.csprojDirectory.Build.propsDirectory.Packages.props

ステップ 1:テストプラットフォームとフレームワークを検出

  1. プロジェクトディレクトリで dotnet --version を実行して SDK バージョンを確認します。これにより global.json の SDK ピニング対応します。
  2. global.json を読む — .NET SDK 10+ で "test": { "runner": "Microsoft.Testing.Platform" } がある場合、これが MTP の確実な合図 です。存在する場合、プロジェクトは MTP と SDK 10+ 構文を使用します(-- セパレータなし)。
  3. .csprojDirectory.Build.propsおよび Directory.Packages.props を読んでフレームワークパッケージと MTP プロパティを確認します。3 つのファイルすべてを常に確認してください — MTP プロパティは個別の .csproj ファイルではなく Directory.Build.props に設定されることがよくあります。
  4. 完全な検出ロジック(SDK 8/9 の合図、フレームワーク識別)については、platform-detection スキルを参照してください。

各ファイルで確認すべき内容:

ファイル確認項目意味
global.json"test": { "runner": "Microsoft.Testing.Platform" }SDK 10+ の MTP
global.json"sdk": { "version": "..." }SDK バージョン(-- セパレータの動作を決定)
.csproj<TestingPlatformDotnetTestSupport>trueSDK 8/9 の MTP
.csprojMSTestxunit.v3NUnitTUnit パッケージフレームワークの特定
.csprojMicrosoft.NET.Test.Sdk + テストアダプタVSTest(上記の MTP 合図でオーバーライドされていない限り)
.csproj<TargetFrameworks>(複数形)マルチ TFM — --framework が必要な場合がある
Directory.Build.props<TestingPlatformDotnetTestSupport>trueSDK 8/9 の MTP(.csproj ではなくここに設定されることが多い)
Directory.Packages.props集中管理されたテストパッケージバージョンCPM リポジトリのフレームワーク特定

クイック検出まとめ:

合図意味
global.json"test": { "runner": "Microsoft.Testing.Platform" } があるSDK 10+ の MTP — 引数を直接渡す、-- なし
csproj または Directory.Build.props に <TestingPlatformDotnetTestSupport>true があるSDK 8/9 の MTP-- 後に引数を渡す
どちらの合図もないVSTest

ステップ 2:テストを実行

VSTest(すべての .NET SDK バージョン)

dotnet test [<PROJECT> | <SOLUTION> | <DIRECTORY> | <DLL> | <EXE>]

一般的なフラグ:

フラグ説明
--framework <TFM>マルチ TFM プロジェクトで特定のフレームワークをターゲット(例:net8.0
--no-buildビルドをスキップし、以前にビルドされた出力を使用
--filter <EXPRESSION>選択したテストを実行(ステップ 3 を参照)
--logger trxTRX 結果ファイルを生成
--collect "Code Coverage"Microsoft コードカバレッジを使用してコードカバレッジを収集(組み込み、常に利用可能)
--blameブレームモードを有効にしてホストをクラッシュさせるテストを検出
--blame-crashテストホストがクラッシュしたときにクラッシュダンプを収集
--blame-hang-timeout <duration>テストが期間より長くハングした場合中止(例:5min
-v <level>詳細度:quietminimalnormaldetaileddiagnostic

.NET SDK 8 または 9 での MTP

<TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport> の場合、dotnet test は MTP へのブリッジですが、VSTest スタイルの引数解析を使用します。MTP 固有の引数は -- 後に渡す必要があります:

dotnet test [<PROJECT> | <SOLUTION> | <DIRECTORY> | <DLL> | <EXE>] -- <MTP_ARGUMENTS>

.NET SDK 10+ での MTP

global.json ランナーが Microsoft.Testing.Platform に設定されている場合、dotnet test-- なしで MTP 引数をネイティブに理解します:

dotnet test
    [--project <PROJECT_OR_DIRECTORY>]
    [--solution <SOLUTION_OR_DIRECTORY>]
    [--test-modules <EXPRESSION>]
    [<MTP_ARGUMENTS>]

例:

# プロジェクト内のすべてのテストを実行
dotnet test --project path/to/MyTests.csproj

# プロジェクトを含むディレクトリ内のすべてのテストを実行
dotnet test --project path/to/

# ソリューション内のすべてのテストを実行(sln、slnf、slnx)
dotnet test --solution path/to/MySolution.sln

# ソリューションを含むディレクトリ内のすべてのテストを実行
dotnet test --solution path/to/

# MTP フラグを使用して実行
dotnet test --project path/to/MyTests.csproj --report-trx --blame-hang-timeout 5min

:.NET 10+ の dotnet test 構文は、VSTest 構文のようなベアの位置引数を受け入れません。ターゲットを指定するには --project--solution、または --test-modules を使用してください。

一般的な MTP フラグ

これらのフラグは両方の SDK バージョンの MTP に適用されます。SDK 8/9 では -- 後に渡す;SDK 10+ では直接渡します。

組み込みフラグ(常に利用可能):

フラグ説明
--no-buildビルドをスキップし、以前にビルドされた出力を使用
--framework <TFM>マルチ TFM プロジェクトで特定のフレームワークをターゲット
--results-directory <DIR>テスト結果出力用のディレクトリ
--diagnosticテストプラットフォーム用の診断ログを有効化
--diagnostic-output-directory <DIR>診断ログ出力用のディレクトリ

拡張機能依存フラグ(対応する拡張機能パッケージが登録されている必要があります):

フラグ必須説明
--filter <EXPRESSION>フレームワーク固有(すべてのフレームワークがサポートしているわけではない)選択したテストを実行(ステップ 3 を参照)
--report-trxMicrosoft.Testing.Extensions.TrxReportTRX 結果ファイルを生成
--report-trx-filename <FILE>Microsoft.Testing.Extensions.TrxReportTRX 出力ファイル名を設定
--blame-hang-timeout <duration>Microsoft.Testing.Extensions.HangDumpテストが期間より長くハングした場合中止(例:5min
--blame-crashMicrosoft.Testing.Extensions.CrashDumpテストホストがクラッシュしたときにクラッシュダンプを収集
--coverageMicrosoft.Testing.Extensions.CodeCoverageMicrosoft コードカバレッジを使用してコードカバレッジを収集

いくつかのフレームワーク(例:MSTest)はデフォルトで共通の拡張機能をバンドルしています。その他は明示的なパッケージ参照が必要な場合があります。フラグが認識されない場合、対応する拡張機能パッケージがプロジェクトで参照されているか確認してください。

代替 MTP 呼び出し

MTP テストプロジェクトはスタンドアロン実行可能ファイルです。dotnet test を超えて、直接実行できます:

# ビルドして実行
dotnet run --project <PROJECT_PATH>

# 以前にビルドされた DLL を実行
dotnet exec <PATH_TO_DLL>

# 実行ファイルを直接実行(Windows)
<PATH_TO_EXE>

これらの代替呼び出しは MTP コマンドライン引数を直接受け入れます(-- セパレータ不要)。

ステップ 3:フィルタリングされたテストを実行

各プラットフォームとフレームワークの組み合わせの完全なフィルタ構文については、filter-syntax スキルを参照してください。重要なポイント:

  • VSTest(MSTest、xUnit v2、NUnit):=!=~!~ 演算子を使用する dotnet test --filter <EXPRESSION>
  • MTP -- MSTest と NUnit:VSTest と同じ --filter 構文;SDK 8/9 では -- 後に、SDK 10+ では直接渡す
  • MTP -- xUnit v3--filter-class--filter-method--filter-trait を使用(VSTest 式構文ではない)
  • MTP -- TUnit:パスベースの構文を使用する --treenode-filter

検証

  • テストプラットフォーム(VSTest または MTP)が正しく識別されました
  • テストフレームワーク(MSTest、xUnit、NUnit、TUnit)が正しく識別されました
  • 検出されたプラットフォームと SDK バージョンに対して正しい dotnet test 呼び出しが使用されました
  • フィルタ式がプラットフォームとフレームワークに適切な構文を使用していました
  • テスト結果がユーザーに明確に報告されました

一般的な落とし穴

落とし穴解決策
VSTest プロジェクトで Microsoft.NET.Test.Sdk が不足しているテストが検出されません。<PackageReference Include="Microsoft.NET.Test.Sdk" /> を追加してください
MTP 上の xUnit v3 で VSTest --filter 構文を使用MTP 上の xUnit v3 は --filter-class--filter-method などを使用します — VSTest 式構文ではありません
.NET SDK 8/9 で -- なしで MTP 引数を渡す.NET 10 以前は MTP 引数が -- 後に必須:dotnet test -- --report-trx
.NET SDK 10+ で -- --arg セパレータを使用SDK 10+ は MTP 引数を直接渡します — -- セパレータを使用しないでください
MTP に --logger trx または VSTest に --report-trx を使用各プラットフォームに独自の TRX フラグがあります — 重要なルールテーブルを確認してください
MTP 合図について .csproj のみをチェックDirectory.Build.propsDirectory.Packages.props も常に確認してください — MTP プロパティはそこに設定されることがよくあります
SDK 10+ でベアの位置パス引数を使用SDK 10+ は名前付きフラグが必須:--project <path> または --solution <path>

トラブルシューティング

一般的なエラーメッセージとその解決方法:

エラー原因修正
No test is available または No test matches the given testcase filterプラットフォーム/フレームワークの誤ったフィルタ構文、またはテストが検出されないフィルタ構文がプラットフォームと一致することを確認します(filter-syntax スキルを参照)。検出の問題の場合、テスト SDK とアダプタパッケージがインストールされているか確認してください
The --report-trx option is unrecognizedMTP 拡張機能パッケージが参照されていない、または MTP フラグを VSTest プロジェクトで使用しているMTP の場合 <PackageReference Include="Microsoft.Testing.Extensions.TrxReport" /> を追加するか、VSTest の場合 --logger trx を使用してください
The --blame-hang-timeout option is unrecognizedMTP で HangDump 拡張機能が不足している<PackageReference Include="Microsoft.Testing.Extensions.HangDump" /> を追加してください
error NETSDK1045: The current .NET SDK does not support targeting .NET X.0global.json の SDK バージョンがプロジェクトのターゲットフレームワークと一致していないglobal.json SDK バージョンを更新するか、必要な SDK をインストールしてください
The test runner process exited with non-zero exit codeMTP テストホストがクラッシュしたかテスト失敗診断用のクラッシュダンプを収集するために --blame-crash(MTP)または --blame(VSTest)で実行してください
No test source files were found / No test project founddotnet test が指定されたパスでテストプロジェクトを見つけられないパスを明示的に指定:dotnet test <path/to/project.csproj>(VSTest)または dotnet test --project <path>(SDK 10+)
テストが検出されたが 0 が実行されたフィルタ式がテストと一致しないフィルタプロパティ名と値を再確認します。一般的なタイプミス:TestCategory(MSTest)vs Category(NUnit)vs trait 構文(xUnit)
.NET SDK 10+ で MTP 引数に -- を使用.NET 10+ では MTP 引数を直接渡します:dotnet test --project . --blame-hang-timeout 5min-- --blame-hang-timeout を使用しないでください
マルチ TFM プロジェクトがすべてのフレームワークのテストを実行特定のフレームワークをターゲットするために --framework <TFM> を使用してください
global.json ランナー設定が無視される.NET 10+ SDK が必須です。より古い SDK では、代わりに <TestingPlatformDotnetTestSupport> MSBuild プロパティを使用してください
TUnit --treenode-filter が認識されないTUnit は MTP のみです。.NET SDK 10+ では dotnet test を使用し、より古い SDK では VSTest モード dotnet test が TUnit をサポートしていないため dotnet run を使用してください

ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
dotnet
リポジトリ
dotnet/skills
ライセンス
MIT
最終更新
不明

Source: https://github.com/dotnet/skills / ライセンス: MIT

関連スキル

汎用DevOps・インフラ⭐ リポ 502

superpowers-streamer-cli

SuperPowers デスクトップストリーマーの npm パッケージをインストール、ログイン、実行、トラブルシューティングできます。ユーザーが npm から `superpowers-ai` をセットアップしたい場合、メールまたは電話でサインインもしくはアカウント作成を行いたい場合、ストリーマーを起動したい場合、表示されたコントロールリンクを開きたい場合、後で停止したい場合、またはソースコードへのアクセスなしに npm やランタイムの一般的な問題から復旧したい場合に使用します。

by rohanarun
汎用DevOps・インフラ⭐ リポ 493

catc-client-ops

Catalyst Centerのクライアント操作・監視機能 - 有線・無線クライアントのリスト表示・フィルタリング、MACアドレスによる詳細なクライアント検索、クライアント数分析、時間軸での分析、SSIDおよび周波数帯によるフィルタリング、無線トラブルシューティング機能を提供します。MACアドレスやIPアドレスでのクライアント検索、サイト別やSSID別のクライアント数集計、無線周波数帯の分布分析、Wi-Fi信号の問題調査が必要な場合に活用できます。

by automateyournetwork
汎用DevOps・インフラ⭐ リポ 39,967

ci-cd-and-automation

CI/CDパイプラインの設定を自動化します。ビルドおよびデプロイメントパイプラインの構築または変更時に使用できます。品質ゲートの自動化、CI内のテストランナー設定、またはデプロイメント戦略の確立が必要な場合に活用します。

by addyosmani
汎用DevOps・インフラ⭐ リポ 39,967

shipping-and-launch

本番環境へのリリース準備を行います。本番環境へのデプロイ準備が必要な場合、リリース前チェックリストが必要な場合、監視機能の設定を行う場合、段階的なロールアウトを計画する場合、またはロールバック戦略が必要な場合に使用します。

by addyosmani
OpenAIDevOps・インフラ⭐ リポ 38,974

linear-release-setup

Linear Releaseに向けたCI/CD設定を生成します。リリース追跡の設定、LinearのCIパイプライン構築、またはLinearリリースとのデプロイメント連携を実施する際に利用できます。GitHub Actions、GitLab CI、CircleCIなど複数のプラットフォームに対応しています。

by novuhq
Anthropic ClaudeDevOps・インフラ⭐ リポ 2,159

tracking-application-response-times

API エンドポイント、データベースクエリ、サービスコール全体にわたるアプリケーションのレスポンスタイムを追跡・最適化できます。パフォーマンス監視やボトルネック特定の際に活用してください。「レスポンスタイムを追跡する」「API パフォーマンスを監視する」「遅延を分析する」といった表現で呼び出せます。

by jeremylongshore
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: dotnet · dotnet/skills · ライセンス: MIT