222

組み込みの を使用するいくつかのテストがありますがMicrosoft.VisualStudio.TestTools.UnitTesting、実行できません。

Visual Studio 2012 Ultimate を使用しています。

私は2つのプロジェクトの解決策を持っています; クラスの using Microsoft.VisualStudio.TestTools.UnitTesting前、テストメソッドと参照の前にテストがあります(バージョン10.0.0.0、ランタイムバージョンv2.0.50727)。dot-net フレームワーク 3.5、4、および 4.5 を試しましたが、他のフレームワークでは再ターゲット エラーが発生します。[TestClass][TestMethod]Microsoft.VisualStudio.QualityTools.UnitTestFramework

私はソリューションとプロジェクトを構築しようとしました。テスト エクスプローラーには、「使用可能なすべてのテストを検出するには、ソリューションを構築してください」というメッセージが表示されます。[すべて実行] をクリックして、ソリューション内のすべてのテストをビルド、検出、および実行します。

質問は次のとおりです。ビジュアルスタジオでテストを見つけるにはどうすればよいですか?


また、これに従おうとしました: http://msdn.microsoft.com/en-US/library/ms379625%28v=VS.80%29.aspxしかし成功しませんでした:右クリックして選択しますcreate tests。ありませんcreate tests


私はこのテストを持っています(コンパイルされますが、テストエクスプローラーには表示されません):

using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace tests {
    [TestClass]
    public class SimpleTest {
        [TestMethod]
        public void Test() {
            Assert.AreEqual("a","a", "same");
        }
    }
}

共有ドライブ上にあることが原因であることがわかりました(以下の削除された回答を参照)が、それを回避する方法はまだわかりません。(おそらくセキュリティ設定に関する何か)。

4

49 に答える 49

227

同じ症状がありましたが、状況が異なりました。

Peter Lamberg のソリューションにもう 1 つのステップを追加する必要がありました — ソリューション/プロジェクトをクリーンアップします。

私の unittest プロジェクトは x64 を対象としています。プロジェクトを作成したとき、当初は x86 をターゲットにしていました。

x64 に切り替えた後、すべての単体テストが消えました。

テスト メニュー -> テスト設定 - デフォルト プロセッサ アーキテクチャ -> x64 に移動する必要がありました。

彼らはまだ現れませんでした。

ビルドを行いました。

それでも現れませんでした。

最後にクリーンを行いました

それから彼らは現れました。

Clean Solution と Clean は、設定が変更されたときにソリューションがボールをプレーするのに非常に役立つことがわかりました。場合によっては、極端に行ってディレクトリとディレクトリを削除objbin、再構築する必要があります。

于 2013-04-20T05:10:13.920 に答える
160

クラス定義にキーワードpublicを追加してください。テスト クラスは現在、独自のアセンブリの外では表示されません。

namespace tests {
    [TestClass]
    public class SimpleTest {
        [TestMethod]
        public void Test() {
            Assert.AreEqual("a","a", "same");
        }
    }
}
于 2013-01-23T20:59:21.383 に答える
58

これは時々機能します。

[テスト] メニューのプロセッサ アーキテクチャが、ソリューションのビルドに使用するものと一致することを確認します。

テスト -> テスト設定 -> デフォルトのプロセッサ アーキテクチャ -> x86 / x64

他の投稿で述べたように、テスト エクスプローラー ウィンドウが開いていることを確認してください。テスト -> Windows -> テスト エクスプローラー

次に、テストを使用してプロジェクトを再構築すると、テストがテスト エクスプローラーに表示されます。

編集: Ourjamie が以下で指摘したように、クリーン ビルドを行うことも役立つ場合があります。それに加えて、ここに私が遭遇したもう1つのことがあります:

ソリューションの下で作成した新しいテスト プロジェクトの [構成マネージャー] で、[ビルド] チェックボックスのチェックが外されていました。

[ビルド] -> [構成マネージャー] に移動します。テスト プロジェクトで、すべてのソリューション構成とソリューション プラットフォームのビルド チェックボックスがオンになっていることを確認してください。

于 2013-03-20T15:56:42.353 に答える
12

元のポスターが示しているように、プロジェクトは共有ドライブ上にあるため。VS.NET は、テスト アセンブリを読み込んで実行する前に、ネットワークの場所を信頼する必要があります。このブログ投稿を読んでください

VS.NET がネットワーク共有の内容をロードできるようにするには、それら (共有) を信頼できる場所に追加する必要があります。完全な信頼リストの実行に場所を追加するには (環境に合わせて必要に応じて変更してください):

 caspol -m -ag 1.2 -url file:///H:/* FullTrust

既存の信頼できる場所を確認または一覧表示するには、次のコマンドを実行します。

 caspol -lg
于 2013-08-08T04:42:47.150 に答える
10

私が見つけた問題は、ソリューションがネットワーク ドライブ/ネットワークの場所/共有ドライブから実行されている場合、テスト エクスプローラーでテストが見つからない (何も表示されない) ことです。

これは、環境変数を追加することで修正できます。

COMPLUS_LoadFromRemoteSources を作成し、その値を 1 に設定します

于 2013-08-02T23:01:52.037 に答える
6

一般的なテストの問題を解決するためのクイック チェック リスト。次のことを確認してください。

  1. テストクラスとテストメソッドはpublic
  2. テストクラスには[TestClass]属性があります
  3. テストメソッドには[TestMethod]属性があります

これで問題が解決しない場合は、ソリューションのクリーニング、再構築、Visual Studio の再起動を試してください。

于 2014-03-18T10:16:51.177 に答える
2

この問題をトラブルシューティングする最善の方法は、.proj msbuild ファイルを作成し、問題のある単体テスト プロジェクトをこのファイルに追加し、mstest のコマンド ライン バージョンを使用してテストを実行することです。mstest からテストを実行している場合にのみ表示される app.config に小さな構成の問題が見つかりました。それ以外の場合、テスト プロジェクトは正常にビルドされました。また、この方法でも間接参照の問題が見つかります。mstest を使用してコマンド ラインから単体テストを実行できるようになったら、クリーン ソリューションを実行してソリューションを再構築すると、テストが適切に検出されるはずです。

于 2013-04-24T15:48:36.357 に答える
2

上部のメニューバーから...

テスト -> 実行 -> すべてのテスト

テスト エクスプローラー (テスト -> Windows -> テスト エクスプローラー) からすべてのテストを表示することもできます。

さらに VS 2012 では、何か見逃した場合は、右上のクイック起動バー (Ctrl + Q) を使用して検索してみてください (Ctrl + Q) "テスト"

お役に立てれば。

于 2012-11-23T17:31:50.193 に答える
2

私の場合、それは別のものでした。パッケージをインストールしてからアンインストールし、以前のバージョンを再インストールしました。configuration/runtime/asssemblyBinding/dependencyIdentityこれにより、app.config にリダイレクトが残っていました。私はそれを修正しなければなりませんでした。Outputウィンドウを見てTests、ドロップダウンで「 」を選択するとわかりました。エラーメッセージはそこにありました。これは苦痛でした...他の人の助けになることを願っています。

于 2014-03-26T15:49:06.817 に答える
2

これは、OPの質問に答えるのではなく、ここにたどり着く人々を助けるためのものです:

Visual Studioを閉じて再度開いてみてください。うまくいきました。

これが誰かに役立つことを願っています。

于 2014-10-07T15:39:39.980 に答える
2

これは古い質問であることは知っていますが、Visual Studio 2015 では、新しく作成したテスト クラスが認識されないという問題がありました。すべてを試しました。最終的に問題になったのは、クラスが「プロジェクトに含まれていない」ことでした。これは、Visual Studio を再起動して、テスト クラスが存在しないことに気付いたときにのみ見つかりました。隠しファイルを表示すると、それが表示され、私が作成した他のクラスも含まれていませんでした。それが役立つことを願っています

于 2015-08-31T19:34:36.743 に答える
1

「ローカルのコピー」が「False」に設定されている可能性のあるアセンブリについて、参照されているアセンブリを確認します。

テスト プロジェクトが独自のフォルダー (bin/Debug など) にビルドされ、プロジェクトが別のアセンブリに依存し、参照リスト内のそれらのアセンブリの 1 つが Copy Local = "False" とマークされている場合、依存関係が見つからないためにアセンブリを読み込めません。ビルド後にテストが読み込まれません。

于 2014-06-03T19:09:12.973 に答える
1

VS2013 Ultimate のネットワーク共有でソリューションを開こうとしているときに、同じ問題に遭遇しました。

オンにして問題を修正しました

コントロール パネル -> インターネット オプション -> [セキュリティ] タブ -> [ローカル イントラネット] をクリックし、サイトをクリックして、[イントラネット ネットワークを自動的に検出する] がチェックされていることを確認します。

于 2014-01-22T11:04:25.597 に答える
1

NUnit Framework 2.6.4 は NUnit Test Adapter でうまく動作しないようです。Web サイトでは、テスト アダプターは NUnit Framework 2.6.3 でのみ動作すると述べています。

これは私の問題でした: 1. VS2012 で Nuget を介して NUnit と NUnit Test Adapter を別々にダウンロードしました。どういうわけか、NUnit が 2.6.4 に更新されました。突然、テスト ケースが一覧表示されませんでした。

修理:

  1. Nuget と Nuget Test アダプターのアンインストール

    a. [ツール] > [Nuget] > [Nuget Pkg manager] > [ソリューションの Nuget Pkg の管理] に移動します。

    b. インストールされているパッケージを一覧表示する

    c. [管理] をクリックします

    d. プロジェクトのチェックを外します

  2. NUnit 2.6.3 Framework を含む NUnit Test Adapter をインストールします。

  3. クリーン/リビルド ソリューション

  4. [テスト] > [テスト エクスプローラー] > [すべて実行] を開く

すべてのテストケースを見る

お役に立てれば

于 2014-12-17T23:57:56.023 に答える
1

ソリューションを Microsoft Visual Studio 2012 Express for Web から Microsoft Visual Studio 2013 にアップグレードするときに、この問題が発生しました。

2012 年に Unit Tests プロジェクトを作成しましたが、2013 年に開いた後、Unit Test プロジェクトはテスト エクスプローラーにテストを表示しませんでした。テストを実行またはデバッグしようとするたびに失敗し、出力ウィンドウに次のように表示されます。

    Failed to initialize client proxy: 
    could not connect to vstest.discoveryengine.x86.exe

また、テストをデバッグしているときに、Visual Studio 2012 のインスタンスを起動していることにも気付きました。これにより、単体テスト プロジェクトがまだ 2012 を参照しているという事実がわかりました。テスト プロジェクトの参照を見て、間違った Microsoft Visual をターゲットにしていることがわかりました。このバージョンの Visual Studio 用の Studio 単体テスト フレームワーク DLL:

C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll

バージョン番号を 11.0 から 12.0 に変更しました。

C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll

すべてを再構築したところ、問題が修正されました。すべてのテストがテスト エクスプローラーで検出され、すべてのテストが検出され、完全に実行されるようになりました。

于 2014-01-18T22:33:52.790 に答える
1

私にとって、解決策は少し複雑ではありませんでした。

(gitHub から複製した) 既存のソリューションを自分のマシンに導入したばかりで、Visual Studio が作成した自動生成された .cs ファイルを追跡していません。(機能ファイルごとに、同じ名前の .cs ファイルがあります)

関連付けられた .cs ファイルを持たずにソリューションを開くと、実際にはバインドされたメソッドに移動できるため、specflow が適切に接続されているように見えましたが、テスト エクスプローラーでテスト名を表示できませんでした。

この問題では、機能ファイルをプロジェクトから除外してから再度含めるだけで、VS はこれらの自動生成されたコードビハインド ファイルを再生成する必要がありました。

その後、テスト エクスプローラーでテストを表示できました。

于 2013-12-26T17:10:44.367 に答える
1

VS 2012 を Latest Update に更新しました。つまり、ビジュアルスタジオアップデート3.これで問題は解決しました。

于 2013-09-17T15:15:02.270 に答える
1

これがGoogleでのトップの結果であるため、私の回答を追加します。

私は Visual Studio 2015 を使用しており、(知らないうちに - 実行しただけですInstall-Package NUnit) NUnit3 パッケージ NuGet をテスト プロジェクトにインストールしました。NUnit Test Adapter 拡張機能を既にインストールしていましたが、テストがまだ表示されません。

Tools > Extensions and Updates から NUnit3 Test Adapter をインストールすると、これが修正されました。

于 2016-01-13T21:11:28.027 に答える
1

私は同じ問題を抱えていましたが、少し異なりました。

Visual Studio 2012 を使用していました。何らかの理由で、最初に生成されたファイルのテストのみが実行されていました。しかし、別のファイルのテストは実行されていませんでした。ここに投稿されたさまざまなソリューションを試してみましたが、うまくいきませんでした。

最後に、クラス内の最初のメソッドであるテストクラスにプライベートメソッドがあることがわかりました。テスト メソッドのにプライベート メソッドを移動しました。そのため、[TestMethod]属性を持つメソッドはクラス内の最初のメソッドです。奇妙ですが、今では動作します。

これがいつか誰かに役立つことを願っています。

于 2015-10-15T04:36:32.160 に答える
1

これらはすべて素晴らしい答えですが、私が知っている理由がもう 1 つあります。私はちょうどそれに遭遇しました。私のテストの 1 つで、未使用のプライベート クラスがあることを示す ReSharper メッセージが表示されました。今後のテストで使用するクラスでした。これにより、実際にすべてのテストが消えました。

于 2014-03-20T18:13:16.680 に答える
1

プロジェクト プロパティ -> 署名で、テスト プロジェクトが[署名のみを遅らせる]に設定されていないことを確認します。存在する場合は、選択を解除してクリーン リビルドを実行します。

于 2014-01-22T10:12:35.047 に答える
0

これらの回答はどれも私が遭遇した原因を扱っていないため、この問題については、ここにも回答を追加します。

私の場合、それはコピペコードの問題でした。TestProjectA独自のテスト プロジェクトに引き出したい特定の種類のテストがある場所がありましたTestProjectB。現在の問題は、テストは問題TestProjectAなく表示され続けますが、新しいテストTestProjectBは VS テスト エクスプローラーに表示されないということでした。具体的にビルドするTestProjectBか、テストを手動で右クリックして実行しない限りです。

原因は、コードをコピーして貼り付けたときに、一部の名前空間が更新されなかったためです。

  • ファイルパスの名前空間TestMethodA()に inがありますTestClassATestProjectA.ModuleA\TestProjectA\TestClassA.cs
  • ファイルパスを持つ名前空間のTestMethodA()inと同様にTestClassBTestProjectA.ModuleA\TestProjectB\TestClassB.cs

そのため、Visual Studio は、これら 2 つの TestId が同じであるというメッセージを [出力] ウィンドウに出力し、2 つのプロジェクト間で TestId が競合しているため、テスト エクスプローラーでTestProjectAはなく表示に進みます。TestProjectB名前空間をTestProjectB.ModuleB修正\TestProjectB\TestClassB.csして問題を修正しました。

于 2015-03-19T18:34:04.247 に答える
0

Visual Studio Professional 2012、ここで 4 を更新します。テスト クラスと同じプロジェクトに Interop 関数定義 (DllImport/extern) があると、テスト エクスプローラーが混乱します。Interop を別のプロジェクトに移動して、問題を解決しました。

于 2014-06-27T15:14:48.290 に答える
0

最も簡単な方法は、これらのファイルをファイル エクスプローラーからテスト プロジェクトにドラッグ アンド ドロップすることです。プロジェクトを再度ビルドすると、準備完了です。

また

テスト プロジェクトのファイルをテキスト エディターで開き、.csprojコンパイルするファイル名を手動で含めます。ファイル内のタグを検索し、Compile実行するファイルを追加します。

<ItemGroup>
    <Compile Include="TestSettings.cs" />
    <Compile Include="TestLibrary.cs" />
    <Compile Include="UnitTest1.cs" />
</ItemGroup>

ファイルに Compile タグを追加して保存します。テストを実行します。単体テストを含むファイルが検出され、実行されます。

于 2015-12-22T06:17:42.633 に答える
0

「ビジュアルスタジオはテストを見ることができません」とグーグルで検索した後、ここに来たので、私の問題を共有したいと思いました。ソリューションを構築でき、テストは存在していましたが、それらを見ることができませんでした! 問題の原因はIDEの癖でした。説明と修正については、以下の画像を参照してください。

ここに画像の説明を入力

于 2015-10-22T21:41:17.890 に答える
0

テストが検出されない可能性がある別の問題。通常、テスト出力ウィンドウに次のようなメッセージが表示されます。

次の例外がスローされたため、runsettings プラグイン 'VSTest 実行構成' の設定を構成できませんでした:
'EntityName の解析中にエラーが発生しました。行 1、位置 8。
プラグインの作成者に連絡してください。

これは、xml として解析するためにエスケープが必要な文字がパスまたはファイル名に含まれていることが原因である可能性があります。ディレクトリ名やファイル名では<>を使用できないため、具体的には&文字です。これにより、テストの検出が失敗し、テストを識別できなくなりますが、余白をクリックすることで Resharper を使用して手動でテストを実行することはできました。

于 2015-09-03T10:09:25.093 に答える
0

入力文字列パラメーターを含むメソッド宣言をコピーして貼り付けました。入力パラメーターを削除するのを忘れました。

  public void ExtractValueFromLineTest(string input) {}//test not discovered because of the string input param
于 2014-02-12T08:10:11.237 に答える
0

ユーザーエラー/愚かさに基づいてリストに追加する別のものを次に示します....この質問からさまざまな回答を試したところ、構成マネージャー(ビルドメニュー、構成マネージャー)でテストプロジェクトのチェックが外されていることに気付きました。構築 >.<

これを投稿することで、私がやったように 1 時間か 2 時間を無駄にする人を救ってくれることを願っています!

于 2014-10-06T13:49:44.590 に答える
0

Visual Studio 2015 (v.14.....) - 同じ問題

原因: NUnit と NUnit テスト アダプターのバージョンが異なる私の場合、NUnit (3.5) と NUnit テスト アダプターの両方の最新バージョンを持っていましたが、テスト アダプターは適切なものではありませんでした。NUnit 3 以降では、使用する必要がある NUnit3TestAdapter があります。

解決策: 「問題のある」NUnint テスト アダプターをアンインストールし、UNit3TestAdapter v.3.5.0 をインストールしました (現在の最新バージョンは 3.6.0 ですが、NUnit と同じにするために使用しませんでした)。

ソリューションテストの再構築後、ポップアップが表示されました:)

于 2016-12-09T07:54:03.553 に答える
0

上記のすべてを試しましたが、Visual Studio 2012 でテストが表示されませんでした。結局、私はテストクラスに行き、それがRootNamespace.FolderNameを持っていることを発見し、.FolderNameを削除してクラスをルートネームスペースに配置し、ビンゴすべてのテストが戻ってきました!

なぜ先日まで元の名前空間で正常に動作していたのか理解できません。

于 2013-10-01T16:07:51.670 に答える
0

この問題には非常に多くの異なる解決策があるようで、私自身のものを追加することもできます:

Visual Studio を閉じる

C:\Users\username\AppData\Local\Microsoft\VisualStudio\12.0\ComponentModelCache の名前を ComponentModelCache.old に変更します

Visual Studio を実行すると、コンポーネント キャッシュが再構築されます。

于 2015-05-12T08:18:43.120 に答える
0

これはちょうど私を噛んだ。プロジェクトにテストを追加しましたが、テスト エクスプローラーに表示されませんでした。私の古いテストはすべて表示されました。最後に、特定のプレイリストのみを表示していて、新しいテストをプレイリストに追加していないことに気付きました。プレイリストを使用している場合は、[すべてのテスト] を選択し、VS がテストを見つけてテスト エクスプローラーに表示するかどうかを確認します。次に、それらを目的のプレイリストに追加することもできます.

于 2014-05-22T20:53:26.780 に答える
-1

テストメソッドを右クリックして、Run Tests/Run unit Tests オプションを選択できます。これにより、テスト ウィンドウが表示されます。

于 2012-11-23T17:47:24.740 に答える