先週、Visual Studio 2017にアップグレードしました。 MSTest v1を使用したいくつかのテストプロジェクトのソリューションは、最初は問題ないように思えました。ほとんどのテストプロジェクトはテストを正常に実行します。これは.NET Coreではなく.NET Frameworkです。
ただし、問題が発生しているプロジェクトが1つあります。これは統合テストプロジェクトです。つまり、ChromeDriverとSeleniumを使用してWebアプリケーションテストを実行します。このプロジェクトはNUnitを参照しますが、その参照は別のプロジェクト参照からのものです。私は実際にテストフレームワークとしてNUnitを使用していません。
これは、特定のテストプロジェクトでテストを実行しようとしたときのエラーです:Could not find test executor with URI 'executor://mstestadapter/v1'. Make sure that the test executor is installed and supports .net runtime version . Test project {name} does not reference any .NET NuGet adapter. Test discovery or execution might not work for this project. It's recommended to reference NuGet test adapters in each test project in the solution.
https://docs.Microsoft.com/en-us/visualstudio/releasenotes/vs2017-preview-relnotes#--visual-studio-2017-version-158でプレビューリリースノートを参照した後、このソリューションを見つけました-preview-4 (「... What's New ...」にスクロールダウンしてから、.NET Test Adapter Extension)。この重大な変更については言及していますが(他のプロジェクトには影響しませんでした)、問題を解決するために実際に何をすべきかについては言及していません。
もちろん、長期的には、このオプションをオフのままにしておくことは現実的ではありません。それで、私はどのように進むべきかについてのガイダンスを探しています。
MSTest v2に「すばやく」アップグレードできるかどうかを確認しようとしましたが、System.Runtime 4.1.2が見つからなかったため問題がありました。 System.Runtime 4.3.0をNuGet経由で追加しようとしましたが、問題は解決しませんでした。
Xamarin.UITestsの実行中に同様の問題が発生していましたが、Visual Studioに「NUnit 2 Test Adapter」拡張機能をインストールすることで解決しました。 Visual Studio 2017では、[ツール]> [拡張機能と更新...]> [オンライン]> ["NUnit Adapter"を検索]から[NUnit 2テストアダプター]をクリックし、[ダウンロード]ボタンをクリックしてインストールします。インストールを完了するように求められたら、Visual Studioを再起動します。
MSTest V1フレームワークAssembly(Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll)がこのプロジェクトでどのように参照されるかを理解することは興味深いでしょう。上の画像で最終的に無効化された互換性チェックボックスは、このプロジェクトにMSTestV1テストがあり、実行テストが有効になっていることを確認する必要があります。そうでない場合は、何らかの理由で検出ロジックが無効になり、修正する必要があります。アセンブリの参照方法に関するスニペットが役立つでしょう。
MSTest V2への移行に関しては、このブログが役立つはずです。 https://blogs.msdn.Microsoft.com/devops/2016/06/17/taking-the-mstest-framework-forward-with-mstest- v2 / 。そして、あなたが遭遇していると思われる特定の問題については、リポジトリ上のこのgithubの問題は似ています: https://github.com/Microsoft/testfx/issues/184 .
「...しかし、System.Runtime 4.1.2が見つからなかったため、問題がありました。」
これはapp.configの設定であり、プロジェクトの設定が更新されても更新されないと思います。 packagesフォルダーの下でSystem.Runtimeを検索し、app.configを見つけたものと一致するように変更すると、その特定の問題はなくなりました。