201

更新: 2019 を追加します。ディスカバリー/ランナー統合メカニズムは 2017 および 2015 と同じであるため、問題が発生する可能性がある重要な点は同じです。


xUnit ランナーが自分のテストを見つけられない理由を読みましたが、これには xUnit がテストを見つけることができない理由が記載されていますが、私の問題は異なります。(彼らは他の環境で動作していましたが、これは私のマシンだけのようです) - Visual Studio 2015 [Community Edition] の Visual Studio Test Runner は、単に私のテストを表示していません。私はリモートでエキサイティングなことは何もしていません。テストは、デスクトップ上の xUnit.net v2 を対象としています。

[出力] ウィンドウを確認しましたが、 [タブからの出力を表示] の [テスト]の下に何も表示されません。

4

40 に答える 40

236
  1. 問い合わせから証拠開示の例外を排除します。出力ウィンドウ (Ctrl-Alt-O) に移動し、表示出力をドロップダウン (Shift-Alt-S) からテストに切り替えて、検出例外がないことを確認します。

  2. テスト|テスト設定|デフォルトのプロセッサ アーキテクチャは、テストが x86/x64 固有であり、ディスカバリがビット関連の例外をトリガーしている場合、つまりAnyCpuではない場合に役立ちます。

  3. この回答で示唆されているように (テクニックが役立つ場合は賛成) 、デスクトップ コンソール ランナー ( instructions ) を実行することは、構成ファイルの破損など、他の可能性を排除するための適切なクロス チェックになる可能性があります。

    packages\xunit.runner.console.2.2.0\tools\xunit.console <tests.dll>

    xunit.runner.consoleパッケージは非推奨です - VS で動作するものを取得すると、dotnet testそれらを CI コンテキストでも実行できるようになります


ドキュメントを読んでください- 包括的で最新で、トラブルシューティング情報が含まれており、PR が必要です:-

重要な注意事項: 以前に xUnit.net Visual Studio Runner VSIX (拡張機能) をインストールしたことがある場合は、最初にそれをアンインストールする必要があります。現在、Visual Studio ランナーは NuGet 経由でのみ配布されています。それを削除するには、Tools > Extensions and Updatesに移動します。リストの一番下までスクロールし、xUnit.net がインストールされている場合はアンインストールします。これにより、Visual Studio を再起動する必要があります。

テストの検出または実行に問題がある場合は、Visual Studio 内のランナー キャッシュが破損している可能性があります。このキャッシュをクリアするには、Visual Studio のすべてのインスタンスをシャットダウンしてから、フォルダーを削除します%TEMP%\VisualStudioTestExplorerExtensions。また、プロジェクトが Visual Studio ランナー NuGet パッケージ ( ) の 1 つのバージョンに対してのみリンクされていることを確認してくださいxunit.runner.visualstudio

次の手順は私にとってはうまくいきました:

  1. (マシンに重大な混乱があると思われる場合のみ - 一般的に、より一般的なケースは、Visual Studio 統合がまだインストールされていないことです)

    アドバイスどおりに実行してくださいDEL %TEMP%\VisualStudioTestExplorerExtensions:-

    PS> del $env:TEMP\VisualStudioTestExplorerExtensions

  2. xunit.runner.visualstudioすべてのテスト プロジェクトにNuGet パッケージをインストールする

    • パケット:

      .paket\paket add nuget xunit.runner.visualstudio -i
      

      で次のようにする必要がありますpaket.dependencies

      nuget xunit.runner.visualstudio version_in_path: true

      version_in_path: trueビットが重要であることに注意してください

    • Nuget: パッケージ マネージャー コンソール (Alt-T、N、O) に移動し、

      Install-Package xunit.runner.visualstudio)
      

    xunit.runner出力ディレクトリに確実に収まるように再構築します

  3. テスト エクスプローラーを閉じる<- これは私にとって欠けていたビットでした

  4. テスト エクスプローラーを再度開く (Alt-S、W、T)

  5. すべてのテストを実行 (Ctrl R、A)

于 2016-01-30T15:55:13.450 に答える
14

次の手順に従います。

  1. からMsTest.TestAdapterとを更新します。MsTest.TestFramework dll'snugget package manager
  2. ソリューションをきれいにする
  3. ソリューションを構築します。
于 2017-10-16T08:21:21.343 に答える
11

ASPコアプロジェクトとxUnit 2.2.0で作業している間、私は午後中ずっとこれに苦労してきました。私にとっての解決策は、への参照を追加することでしたMicrosoft.DotNet.InternalAbstractions

テストプロジェクトを手動で実行しようとしたときにこれが見つかりましたdotnet testが、失敗しましたが、InternalAbstractions欠落していると報告されました。自動検出が失敗したとき、テスト出力ウィンドウにこのエラーは表示されませんでした。ディスカバリ ウィンドウに表示された唯一の情報はリターン コードでした。当時の私には何の意味もありませんでしたが、後から考えると、おそらくエラーを示していたのでしょう。

于 2016-11-01T21:30:31.580 に答える
5

数日前に遭遇したエッジ ケースの解決策を提供できます。上記のすべてのシナリオに適合するソリューションではありませんが、エッジケースでは修正しました.

最新の VS 2017 (バージョン 15.5.7) と XUnit 2.3.1 でも同じ問題がありました。xunit.runner.visualstudio パッケージがインストールされましたが、VisualStudio の組み込みテスト エクスプローラーにテストが表示されませんでした。

私は、.NET Framework 4.5 を対象とする従来のプロジェクトに取り組んでいました。ただし、バージョン 2.2 以降。XUnit は、4.5.2 より前の .NET フレームワークをサポートしていません (リリース ノートを参照してください - XUnit 2.2: 2017 年 2 月 19 日)

テスト プロジェクトのターゲット フレームワークをバージョン >= 4.5.2 に変更するとうまくいきました。テストしているプロジェクトのバージョンを変更する必要はありません。それはテスト プロジェクト自体についてのみです。

于 2018-03-05T12:16:36.727 に答える
2

私は長い間この問題に苦しんでいました。

  • 約 100 のプロジェクトがあり、異なるバージョンが異なるサーバーにデプロイされていました。

  • xunitを 2.2.0 から 2.3.1 に更新することは、2.3.1 でビルドが失敗していたため、解決策ではありませんでした。

次に、 xunit.runner.visualstudio2.3.1に更新したところ、すべて正常に動作し始めました。パッケージ マネージャー コンソールでこのコマンドを使用して、xunit.runner.visualstudio パッケージを更新しました。

Get-Project ComapanyName.ProjectName.*.Tests | Install-Package xunit.runner.visualstudio -Version 2.3.1
于 2018-02-20T09:34:00.243 に答える
1

VS 2017 で IntelliTest を使って最初の歩行を試みたとき、私に起こりました。

テスト プロジェクトが IntelliTest によって自動作成されると、Microsoft.ExtendedReflection( ...\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\Extensions\Microsoft\Pex\Microsoft.ExtendedReflection. dll ) がありません。追加すると、生成されたテストは再コンパイル後にテスト エクスプローラーに表示されます。

于 2017-06-20T13:30:31.810 に答える
1

上記の提案のほとんどを試しましたが、何も機能しませんでした。私の場合、私はチームに所属しており、同じソリューションの他の開発者のテストが表示されていました。そのため、.vs フォルダーを削除しようとしましたが、うまくいきませんでした。

結局、ローカル フォルダーを完全に削除し、レポを再複製しました。それは私のためにそれを解決しました。

于 2018-02-01T12:52:12.760 に答える
1

これが私たちのために働いた解決策です。最高ではありませんが、おそらく恩恵を受けることができます。

バックグラウンド:

  • 私たちのスクリプトは VS 2013 で開発され、NUnit VS Adapter 2.1 を使用しました。
  • 最近、VS 2017 に移行しましたが、同じソリューションを開くと、テスト エクスプローラーにテストが表示されませんでした。

ビルドすると、次のメッセージが表示されます。

[Informational] NUnit Adapter 3.10.0.21: Test discovery starting
[Informational] Assembly contains no NUnit 3.0 tests: C:\ihealautomatedTests\SeleniumTest\bin\x86\Debug\SeleniumTest.dll
[Informational] NUnit Adapter 3.10.0.21: Test discovery complete

解決策 (一時的):

  • NUnit アダプター 3.10 をアンインストールします...
  • NUnit VS アダプター 2.1 をインストールします。

テストが表示されます。

于 2018-05-29T17:30:47.403 に答える
0

テスト クラスを public にして、注釈を [TestClass] として追加します。

于 2020-07-03T08:49:10.917 に答える
0

テスト プロジェクト A と B があります。プロジェクト A のテストが検出されましたが、ディスカバリーは B で停止しませんでした。停止するには、TestHost を手動で強制終了する必要がありました。

このページで説明されている多くのことを、これが解決策であるかどうかわからないほどにしました。

今はうまくいきました。私がしたことは、ソリューションを開いて、テスト エクスプローラーを起動しないことでした。代わりに、テストの出力ウィンドウを確認したところ、検出プロセスが終了し、テストの数が A+B に等しいことがわかりました。この後、テスト エクスプローラーを開いて、A と B の両方を表示しました。そう:

最新の xUnit を正しくアンインストールしてインストールします。上記のように %temp% を削除し、NuGet パッケージ "Microsoft.TestPlatform.TestHost" を追加し、NuGet パッケージ "Microsoft.NET.Test.Sdk" を追加し、再起動しますが、テスト出力のみを確認します。それが機能する場合は、表示されます

于 2018-01-17T13:10:52.793 に答える