dotnet コマンドでテストを実行する際に、狙ったテストプロジェクトだけ実行したい。そういうことあると思います。
通常はあまりないと思いますけれど。
■ 結論
dotnet test <.csprojファイル(または.csprojのあるフォルダ)>
■ できるかなと思ったこと
.sln ファイルを指定してその中のプロジェクト名をコマンドの後ろに書いたらそのプロジェクトだけ動かないかなと。
動きませんでした。
■ 用意したソリューション
こんな感じで、テストプロジェクトを二つ。プロジェクト名とフォルダ名を変えています。
Project("") = "ClassLibrary1", "ClassLibrary1\ClassLibrary1.csproj", ""
EndProject
Project("") = "TestProject1", "CTestProject1\DTestProject1.csproj", ""
EndProject
Project("") = "TestProject2", "CTestProject2\DTestProject2.csproj", ""
EndProject
■ プロジェクト名 ダメ
> dotnet test TestProject1 MSBUILD : error MSB1009: プロジェクト ファイルが存在しません。
■ フォルダ名 OK
> dotnet test CTestProject1 7.4 秒後に 1 件の警告付きで成功しました を復元する ClassLibrary1 成功しました (0.5 秒) → ClassLibrary1\bin\Debug\net10.0\ClassLibrary1.dll TestProject1 1 件の警告付きで成功しました (1.1 秒) → CTestProject1\bin\Debug\net10.0\TestProject1.dll TestProject1 テスト 成功しました (1.7 秒) テスト概要: 合計: 1, 失敗数: 0, 成功数: 1, スキップ済み数: 0, 期間: 1.6 秒 11.8 秒後に 2 件の警告付きで成功しました をビルド
■ .sln ファイルの場合
二つのテスト両方が動作しています。
> dotnet test 7.8 秒後に 2 件の警告付きで成功しました を復元する ClassLibrary1 成功しました (0.4 秒) → ClassLibrary1\bin\Debug\net10.0\ClassLibrary1.dll TestProject1 1 件の警告付きで成功しました (0.6 秒) → CTestProject1\bin\Debug\net10.0\TestProject1.dll TestProject2 1 件の警告付きで成功しました (1.0 秒) → CTestProject2\bin\Debug\net10.0\TestProject2.dll TestProject1 テスト 成功しました (1.8 秒) TestProject2 テスト 成功しました (2.0 秒) テスト概要: 合計: 2, 失敗数: 0, 成功数: 2, スキップ済み数: 0, 期間: 2.2 秒 12.0 秒後に 4 件の警告付きで成功しました をビルド
■ .csproj
.csproj はすべてを解決する。