VS 2017をインストールして以来、苦労しています。今はユニットテストがコマンドラインからしか実行されないようです "dotnet test."
私のプロジェクトは、.NET Core 1.1.1です。SDKと1.1.1用のフレームワークアップデートをインストールしています。
MSDNのサンプル(https://msdn.microsoft.com/en-us/library/ms182532.aspx)を試してみましたが、これも全く同じように失敗します。
テストとメインプロジェクトのNuGetパッケージはすべて最新です。テストプロジェクトもメインプロジェクトも、エラーなくビルドされます。テストはコマンドラインから正常に実行されます。
どなたかVS2017でユニットテストを実行された方はいらっしゃいますか?
ありがとうございます。 ジョン
ここでは、GitHubで動作していないシンプルなテストプロジェクトの例を紹介します。これは xUnit を使った例ですが、NUnit や Visual Studio に組み込まれた MS テストも試してみました。どのようなテストを行っても、どのような変更を加えても、VSのテストランナーがテストを見つけることができません。
DEL %TEMP%%VisualStudioTestExplorerExtensions
### 試したことMicrosoft.DotNet.InternalAbstractions
(SO の記事参照)をインストールします。test -> test settings -> default processor architecture
が x86 に設定されていることを確認してください。質問 どなたか、VS2017の.Net Core 1.1.0ソリューション(.csprojプロジェクトファイル)で、VSのテストエクスプローラーがユニットテストを正常に見つけることができる動作例を提供していただけますかまたは**与えられた例の問題を示してください。
私の場合は、ソリューション内に存在するUWPプロジェクトが問題を引き起こしていました。
UWPプロジェクトをアンロードすると、テストが発見されました。UWPプロジェクトをロードし直すと、テストが再び消えてしまいました。
すべてのプロジェクトをアンロードして、テストプロジェクトだけを残してみてください。10回ソリューションを再構築すると、テストランナーにテストが表示されます。プロジェクトを1つずつロードし、その都度ソリューションを再構築して、どのプロジェクトが問題の原因になっているかを調べてください。
問題は、Visual Studioがマシン上のdotnet coreのバージョンを把握していないことです。コントロールパネルからプログラムをアンインストールすると、8種類のdotnet core SDKとランタイムがインストールされていました。これが原因で、VSがテストを見つけようとする際にエラーが発生していました。
この問題を検証するには、コマンドラインから、$ dotnet --version
でインストールされているdotnetのバージョンを取得します。インストールした最新のバージョン以外のものが表示された場合は、マシンに何らかのミスマッチがあり、正しいバージョンを使用していないことになります。例えば、dotnet coreが「1.0.1」とインストールされているのに、コマンドプロンプトでバージョンを確認すると「1.0.0」と表示される場合は、問題があります。
古いものをすべて削除します。私はまず、削除する必要があると思われるもの(最も古いdotnet rcのバージョン)だけを削除しましたが、問題のテストではまだ間違ったバージョンが表示されました。最終的には、完全なクリーンアップを行うことにしました。I...
マシンからすべてのVSとドネットが完全になくなった後、VS2017だけをインストールしました(最新のdotnetがパッケージされています)。xUnitのテストプロジェクトを作成し、テストエクスプローラーはすぐにテストを発見しました SOLVED**。
これはやりすぎのように見えるかもしれませんが、私は他の方法でこの問題を解決しようと2週間を費やしました。アンインストールや再インストールに何時間もかかるかもしれませんが、時間の節約になると思います。