170

編集 2016-10-19:

元の質問は、XUnit テスト ランナーを使用した VS2015 CTP6 に固有の問題に関するものでした。多くの異なる状況で発生する可能性がある、Visual Studio での単体テストの検出に関するより広範な問題があることは、回答から明らかです。それを反映するために質問を整理しました。

また、同様の問題が発生したときに解決するために今日でも使用しているスクリプトを自分の回答に含めました。

他の多くの回答も、VS テスト ランナーの複雑さをよりよく理解するのに役立つことが証明されています。人々がまだ解決策を共有していることに感謝します!


元の質問 2015-04-10:

昨日から、私の Visual Studio テスト エクスプローラーは私のプロジェクトのテストを検出しません。ビルド後の緑色の読み込みバーも表示されません。

Visual Studio テスト エクスプローラーに移動して [すべて実行] をクリックするか、任意のテスト メソッドを右クリックして [テストの実行] を選択すると、出力ウィンドウに次のように表示されます。

Could not load file or assembly 'Microsoft.VisualStudio.Web.ProjectSystem, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.

Windows 10 Pro Technical Preview、ビルド 10041 で Visual Studio 2015 CTP 6 を実行してい4.0ます。4.5.24.6

次のテスト フレームワークを試してみましたが、すべて同じ動作をします。

  • Microsoft.VisualStudio.QualityTools.UnitTestFramework v14.0.22609.0
  • xunit v2.1.0-beta1-build2945xunit.runner.visualstudio v2.1.0-beta1-build1051
  • NUnit v2.6.4NUnitTestAdapter v2.0.0

似ていると思われる GitHub (xunit) の問題を見つけました: Cannot get tests Discover #295、xunit チームからの次のコメント:

Visual Studio 2015 CTP 5 は、単体テスト全般 (xUnit.net だけでなく) で多くの人々によって壊れていると報告されていることに注意してください。

また、Visual Studio のランナー キャッシュを消去したことを確認してください。破損した場合、Visual Studio は削除されるまで永続的に誤動作します。キャッシュをクリアするには、Visual Studio のすべてのインスタンスをシャットダウンしてから、フォルダー %TEMP%\VisualStudioTestExplorerExtensions を削除します (正直なところ、削除できる %TEMP% 内のすべてを削除しても問題はないでしょう)。

フォルダを削除するという彼らの提案を試しました%TEMP%\VisualStudioTestExplorerExtensions。残念ながら、それで問題は解決しませんでした。

ReSharper が実際にいくつかのテストを検出できることに気付きました。xunitではなく、VSおよびNUnitテストでのみ機能します。

クリアする必要があるある種の一時フォルダーまたはキャッシュ フォルダーが必要ですが、Visual Studio にはそれらの多くがあり、望ましくない副作用なしにすべてを削除できるわけではないことはわかっています。

4

46 に答える 46

68
  • NUnit Test Adapter 2/3が VisualStudio にインストールされているかどうかを確認してください。
    (Tools>Extensions and Updates )

  • 正しいプロセッサ アーキテクチャが選択されていることを確認します。
    (Test>Test Settings>Default Processor Architecture)

于 2016-01-27T16:53:23.170 に答える
9

これに対する完全な答えはありませんが、テストプロジェクトで遊んでいくつかのことを決定しました:

  1. 公式のxunit.runner.aspnet : 2.0.0-aspnet-beta4beta4 aspnet5 リリースの一部と思われる は、Visual Studio では機能しません。
  2. 代わりに、"xunit": "2.1.0-*"および"xunit-runner.dnx": "2.1.0-*"パッケージを使用すると、Visual Studio で機能します。
  3. VS がテストを検出するには、プロジェクトに「xunit.runner.dnx」を実行する「test」という名前の単一のコマンドが必要です。追加のコマンドを追加すると、それが壊れる可能性があります。
  4. それでもテスト エクスプローラー ウィンドウが空のままになる場合は、プロジェクトから "test" コマンドを削除し、ソリューションを再構築してから、"test" コマンドを project.json に追加し直します。
  5. @Fred-Kleuver の提案に従ってすべてのキャッシュをクリアすると役立つ場合がありますが、すべての手順を個別に実行したわけではないため、わかりません。

これは VS 2015 CTP 6 による最新のもので、デイリーではなくベータ 4 リリースを使用しています。

于 2015-05-14T21:50:32.773 に答える
8

Nuget パッケージ マネージャーに移動し、次のように Nunit アダプターをダウンロードします。

ここに画像の説明を入力

于 2016-12-28T15:22:05.390 に答える
6

Visual Studio を再起動し、テスト エクスプローラーで [すべて実行] を実行するだけです。すべてのテストが検出されます。

于 2017-02-23T11:18:21.847 に答える
5

私の場合 (Visual Studio Enterprise 2015 14.0.25425.01 Update 3、Resharper 2016.2) 、[ビルド] メニューからクリーン ソリューションを実行する必要がありました。ソリューションを再構築すると、テスト エクスプローラーが「起動」し、すべてのテストが再び検索されます。

于 2016-09-11T06:07:18.897 に答える
4

私の場合、VS 2015 の MSTest は、174 文字を超えるテスト (メソッド) 名を持つテストを無視していました。名前を短くすると、テストが表示されるようになりました。これは、テスト名を操作することによる推測とチェックによって決定されました。

于 2016-10-04T20:38:06.270 に答える
4

これはおそらくほとんどの人には役に立たないでしょうが、ユニットテストの経験のない誰かが、bool代わりに以下を返すテストメソッドを書いていましたvoid:

[TestMethod]
public bool TestSomething()

戻り値の型を変更しvoidて問題を修正しました。

于 2016-11-30T04:12:08.470 に答える
3

上記のものとはまったく異なる解決策を見つけたことを付け加えたいと思います。

テストクラスを次のように宣言しました。

[TestClass]
class ClassificationTests
{
   //unit tests
}

publicクラスに修飾子を追加するとすぐに、期待どおりに機能しました!

于 2017-05-10T17:55:06.873 に答える
2

これは、テスト プロジェクトにapp.config. アセンブリのリダイレクトのために NuGet パッケージによって自動的に追加されましたが、テストはそれがなくても問題なく実行されたようです。

https://developercommunity.visualstudio.com/comments/42858/view.htmlを参照してください。

于 2017-11-26T15:20:10.870 に答える
1

私も同じ問題を抱えていました。プロジェクトをクリーンアップして再構築したところ、欠落しているテストを確認できました。

于 2016-08-22T19:43:05.440 に答える
1

ファイル \AppData\Local\Microsoft\VisualStudio\14.0\1033\SpecificFold‌ erCache.xml を削除すると、問題が解決しました。

于 2016-12-27T11:13:12.367 に答える
0

複数の App または Web.Config ファイルを操作している場合。例えば:

ここに画像の説明を入力

RELEASE MODE の Config を使用している可能性が高く、Config からデバッグ モード設定を取り除きます。

  <system.web>
    <compilation xdt:Transform="RemoveAttributes(debug)" />

DEBUG MODE を削除しない構成に変更します。

于 2017-06-05T01:55:59.567 に答える
0

2日間過ごした後...上記のどれもうまくいきませんでした。唯一の「解決策」は、プロジェクトのプロパティ -> [ビルド] タブに移動することでした。次に、ペインの右下隅にある [詳細設定] ボタンをクリックします。「Debug Info:」を「full」に変更し、「OK」をクリックします。

スクリーンショットは次のとおりです。 ここに画像の説明を入力

ここに画像の説明を入力ここに画像の説明を入力

于 2017-06-18T20:35:31.207 に答える