テストアダプターがインストールされているNUnitユニットテストがテストエクスプローラーに表示されない


145

VS2012 + 2013用のNUnitテストアダプターをインストールしました。最初にインストールしたときにアダプターテストが表示されましたが、今日何らかの理由で表示されなくなりました。ビルド、再ビルド、クリーニング、再起動後、テストエクスプローラーに何も表示されません。なぜこれが起こっているのでしょうか?VS2013 Ultimateを使用しています。


2
テストプロジェクトを右クリックして、[実行]をクリックしてください。ウィンドウにテストが再び表示されます。
Chase Florell 2013年

@ChaseFlorellではありません。テストエクスプローラーの緑色のバーが表示され始め、その後すぐにスプリットが停止します。
RobVious 2013年

干渉する可能性のある他のテストツールはありますか?私はR#を使用してテストを実行し、VS2012を使用しているため、環境が十分ではありません。ウィンドウを閉じたり、テストの小さなサブセットを実行したりすると、テストツリー全体が消えることは知っています。
Chase Florell 2013年

あなたは...それは、再ロード、その後、テストプロジェクトをアンロード再構築し、試みることができる
チェイスFlorell

@ChaseFlorell私はR#を持っていますが、NUnitテストを使った糖蜜のように遅いです... アンロードしてみます。
RobVious 2013年

回答:


87

テストプロジェクトが64ビットプラットフォームをターゲットとするように設定されている場合、テストはNUnitテストアダプターに表示されません。


54
Test-

6
@Brannonします。これがx64に設定されている場合、x64プロジェクトのテストが表示されます。
基本的な

2
ここでもっと愚かなことが起こった-[Test]属性をテストメソッドに追加するのを忘れた:)
Nikolai

この問題は、NUnit 3テストアダプターにまだ存在するようです。テストアダプタアーキテクチャ(x64とx86)に関するSimoydのソリューションを参照してください。
Bart

1
これは不正解です。テストを実行するには、[テスト]-> [テスト設定]-> [デフォルトのプロセッサアーキテクチャ]-> [x64]を選択します
Andrew Rondeau

182

NUnit3 +バージョンを使用している場合は、新しいテストアダプターが利用可能です。

"Tools-> Extensions and Updates- > Online"に移動し、"NUnit3 Test Adapter"を検索してインストールします。


これにより、コードカバレッジメトリックが表示されなくなる問題も修正されたため、追加の+1。
Aidanapword

ファイアウォールプロキシが拡張機能と更新を介してURLをブロックしている場合は、このURLを使用してアダプターをダウンロードします。marketplace.visualstudio.com/...
Yawar Murtaza

NUnit2テストアダプターを無効にする必要がある場合もあります。
マークパティソン2017年

この方法で取得することと、NuGetパッケージマネージャーから取得することの違いは何ですか?
オクタビアン2018年

NuGetを使用すると、nunitのAPIにアクセスできます。この方法を使用すると、テストエクスプローラーでテストを実行できます(デフォルトでは、MSテストのみが実行されます)。
RicardoFrança18年

57

テストアセンブリは64ビットです。Visual Studio 2012の上部にあるメニューバーから、[テスト]-> [テスト設定]-> [デフォルトのプロセッサアーキテクチャ]-> [X64]を選択できました。「ビルド」メニューから「ソリューションを再ビルド」した後、テストエクスプローラーですべてのテストを確認できました。うまくいけば、これが将来の誰かを助ける= D。


3
アセンブリとプログラムのアーキテクチャを確認してください。ソリューションまたはプロジェクトのプラットフォームが明示的にx64に設定されている場合でも、テストアーキテクチャが一致しない場合、テストの実行に問題が発生します。
Dodzi Dzakuma 2017

30

NUnitバージョンの不一致を確認します。現在利用可能なNUnitテストアダプターは、NUnitバージョン2.6.4以下でのみ機能します。NUnitをバージョン3.xからダウングレードするには、パッケージマネージャーコンソール> update-package NUnit -version 2.6.4に移動します。

http://jeremybytes.blogspot.co.ke/2015/11/review-of-unit-testing-makes-me-faster.html


6
あなたは、私の問題を正確に解決しました!ありがとうございました!NUnitTestAdapter.WIthFrameworkと呼ばれるnugetパッケージがあります。
TheAkhemist 2016年

NUnitのバージョンが一致しないという同様の問題がありました。テストの一部(すべてではない)がテストエクスプローラーに表示されなかったため、NUnitテストアダプターの更新など、あらゆる種類の推奨事項を試しました。以前にNUnitを3.6.1から3.7.1にアップグレードしましたが、なんらかの理由で、私のプロジェクトの1つがまだnunit.framework.dllバージョン3.6.1を参照しており、それ以外はすべて3.7.1を参照していました。参照を3.7.1に更新しましたが、これでうまくいきました。これまでのところ、私のテストは消えていません。成功を祈っている!
jrupe 2017

23

私の状況では、「NUnit3テストアダプター」が無効になっています。再度有効にするには、メニューに移動します

ツール->拡張機能とアップデート...

左側で「インストール済み」->「すべて」を選択します。

右上隅で「nunit」を検索します。

「NUnit3テストアダプター」がインストールされている場合は、見つかったアイテムで有効化/無効化できます。

ここに画像の説明を入力してください


2
私にとってこれはうまくいきませんでした。アンインストールを試み、それがなくなったふりをしたが、それは再起動後にそこにあった。NUnitを標準ユーザーとしてインストールし、管理者としてアンインストールしてみました。VSはこれについて何も述べていません...したがって、解決策は、管理者権限なしで有効にするか、またはその逆です。
トム

10

この答えはかなり基本的なように見えますが、最初は完全にはわかりませんでした。ソリューションを(再)ビルドする場合、ビルドするように構成されているプロジェクトのみがビルドされます。Build -> Configuration Manager

これは私の問題でした。ビルド構成の設定を誤って変更したか、テストプロジェクトがビルドされない原因になっていました(以前のビルドの場合)。したがって、Test Explorerウィンドウは古くなったdllを見ていました。これは、a Cleanを実行した後、ほとんどのテストが消えて、フォルダーのrebuildさらなる検査でbinこれらのプロジェクトがまったくビルドされていないことが判明した後に戻ってこないことがわかりました。


すべてのプロジェクトに設定されたが、ビルド構成のマネージャー私は手動でのテストが再び表示させるために、各テストプロジェクトをビルドする必要がありました。
Noel Widmer 2017

テストプロジェクトを手動でビルドしました。それだけでは不十分でした。私はこの答えが言ったことをしなければなりませんでした。
Jared

10

私は機能している設定(ソリューションに応じてNUnit2とNUnit3、および2012年から2017年の間に複数のバージョンのVisual Studio)を持っていましたが、ある日突然機能しなくなりました:ソリューションまたはVSのバージョンでテストが検出されませんでした。

私の場合、削除に役立ちました%localappdata%\Temp\VisualStudioTestExplorerExtensions。VSの再起動後、すべてが以前と同様に機能しました。


10

ここで述べたようにVS 2017と.netコアを使用している場合は、テストフレームワークNUnit 3.6.1、テストランナーNUnit3TestAdapter 3.8.0-alpha1、およびテストSDK Microsoft.NET.Test.Sdkへの参照を追加する必要があります。 15.0.0


3
.NET Coreを使用していませんが、VS2017に移動したときにNUnitテストアダプターをインストールすると問題が解決しました。
Ciaran Gallagher

8
  1. ツール
  2. NuGetパッケージマネージャー
  3. ソリューションのNuGetパッケージを管理する
  4. ブラウズ
  5. NUnitTestAdapter.WithFramework
  6. Ctrl + R、A:テストをビルド/実行します

ここに画像の説明を入力してください

NUnitTestAdapter.WithFrameworkを使用すると、NUnitとNUnitアダプターのバージョン間で不整合がほとんどまたはまったくないことが保証されます(つまり、「動作するだけ」)


私にとっては、アダプターをNUnitAdapter3に更新した後(VSメニュー->ツール->拡張機能と更新...)+ NUnitのNuGetページを2.6.3から3.2.1に更新します。ありがとう!
smily

1
これは私のために働いた唯一のものです-「WithFramework」のものでなければなりませんでした(標準のアダプタだけではありません)
Mani5556 '28

4

[TestFixureSetUp]と[Test]が記述されているかどうかを確認します

テストクラスで

サンプル:

namespace ClassLibrary1
{
   public class SimpleCalculator
   {
      public Calculator _calculator;
      [TestFixtureSetUp]
      public void initialize()
      {
         _calculator = new Calculator();
      }
      [Test]
      public void DivideTest()
      {
         int a = 10;
         int b = 2;
         int expectedValue = a/b;
         int actualValue = _calculator.Divide(a, b);
         Assert.AreEqual(expectedValue, actualValue, "Functionality not working properly!");
      }
   }   
}

1
TestFixtureSetupは廃止されたようです。<NUnit.Framework.OneTimeSetUp>がより適切です
Jochen

1

xunit.runner.visualstudio nugetパッケージをアンインストールしてから再インストールする必要がありました。私は上記の提案をすべて試した後でこれを試しました。


1

この問題のもう1つの原因は、マップされたドライブからプロジェクトを開いた場合です -Visual Studioはそのようなプロジェクトを適切に処理しますが、Nunitはそれらをサポートしていないようです。

プロジェクトを物理的にコピーすると、問題が修正されました。


0

また、nunit v3.2.1をアンインストールしても、v3.2.1のnunitフレームワークリファレンスがソリューションエクスプローラーのプロジェクトに残っていることもわかりました。ソリューションエクスプローラー> ProjectName >参照

右クリックすると、バージョンが表示されます。これを削除し、[参照]> [参照の追加]を右クリックします。

バージョン2.xバージョンを検索し、ソリューションを追加してから再構築します。

それは私のために働いた!


0

私はopによって言及された問題を経験しました

私の場合、古いプロジェクトが渡され、テストは実際にはテスト中のシステムの一部でした。私は彼らが外部テストランナーを使用していたと思います。

このタスクチェーンは私のために問題を解決しました

  • テストプロジェクトを作成し、
  • そこにテストファイルを移動しました
  • テストプロジェクトがコンパイルされるように参照を追加
  • NunitおよびNunitアダプターのNuGetパッケージをテストプロジェクトに追加
  • 再コンパイル

Nunitテストを正常に実行できました。


0

TestCaseSource属性を使用している場合は、ソースが存在し、ドキュメントを尊重していることを確認してください。そうでない場合、テストは検出されません。


0

テストが発見されないという同様の問題がありました。NUnitの正しいバージョン、NUnitとアダプター間で一致するバージョン、および正しくタグ付けされたテストがありました。管理者としてではなく、VS 2017 Enterpriseを実行していました。管理者としてVSを起動した後、テストが表示されました。


0

テストプロジェクトを組み込んだ新しいソリューションを開始し、元の問題のあるプロジェクトと比較しました。オリジナルには、何らかの理由でapp.configが含まれていました。そのファイルをプロジェクトから除外したところ、テストがテストエクスプローラーに再表示されました。


0

私もこの問題を抱えていましたが、原因は異なりました。F#4.0でVS2017を使用しています。

まず、Visual Studioのコンソールでは、テストが見つからなかった理由が十分にわかりません。テストでのDLLのロードに失敗するだけです。詳細を表示するには、コマンドラインでNUnit3console.exeを使用します。

私の場合、それはテストアダプターがF#コアDLL(4.4.1.0)(F#4.1)の新しいバージョンを探していたのに、4.4.0.0(F#4.0)をまだ使用しているためです。だから私はこれをテストプロジェクトのapp.configに追加しました:-

  <dependentAssembly>
    <assemblyIdentity name="FSharp.Core" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="4.4.0.0" />
  </dependentAssembly>

つまり、以前のF#コアにリダイレクトします。


0

同じ問題がありましたが、突然、テストエクスプローラーウィンドウにテストが表示されませんでした。「NUnit3TestAdapter」のアップデート版を持っています

多くの検索と努力の結果、プロジェクトのプロパティで次の値を設定する必要があることがわかりました。 CPUビルドプロジェクトとすべてのテストがテストエクスプローラーウィンドウに表示されます。

重要な注意:出力ウィンドウに次のメッセージが表示された後、私は解決策に行きました:

「テスト実行では、Framework Framework45およびプラットフォームX86用にビルドされたDLLを使用します。次のDLLは実行の一部ではありません。AutomationTests.dllは、Framework Framework45およびPlatform X64用にビルドされています。」


0

ハングしたいくつかのmsbuild.exeプロセスがありました。それが私の問題かどうかはわかりませんが、ハングしたプロセスを見つける前に、さまざまなNUnitアダプターを再インストールするのにかなりの試行錯誤が必要でした。


0

ここに$ .02を追加するだけで、昨日同様の問題が発生し、168のテストがありませんでした。私はこの投稿のほとんどすべてを試しました-特に私のNUnitのバージョンが同じであることを確認することは特に-すべて役に立たなかった。次に、テストをプレイリストに分割したことを思い出しました。新しいテストを追加しても、これら自動的に更新されません。だから、プレイリストを削除すると、BAM!、私のテストのすべてがもう一度戻ってきました。


-1

テストがTest属性で適切にマークされていることを確認してください。すべてのテストがExplicit属性のみでマークされている場合、TestAdapterはフィクスチャを認識しません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.