VS2012 + 2013用のNUnitテストアダプターをインストールしました。最初にインストールしたときにアダプターテストが表示されましたが、今日何らかの理由で表示されなくなりました。ビルド、再ビルド、クリーニング、再起動後、テストエクスプローラーに何も表示されません。なぜこれが起こっているのでしょうか?VS2013 Ultimateを使用しています。
VS2012 + 2013用のNUnitテストアダプターをインストールしました。最初にインストールしたときにアダプターテストが表示されましたが、今日何らかの理由で表示されなくなりました。ビルド、再ビルド、クリーニング、再起動後、テストエクスプローラーに何も表示されません。なぜこれが起こっているのでしょうか?VS2013 Ultimateを使用しています。
回答:
テストプロジェクトが64ビットプラットフォームをターゲットとするように設定されている場合、テストはNUnitテストアダプターに表示されません。
NUnit3 +バージョンを使用している場合は、新しいテストアダプターが利用可能です。
"Tools-> Extensions and Updates- > Online"に移動し、"NUnit3 Test Adapter"を検索してインストールします。
テストアセンブリは64ビットです。Visual Studio 2012の上部にあるメニューバーから、[テスト]-> [テスト設定]-> [デフォルトのプロセッサアーキテクチャ]-> [X64]を選択できました。「ビルド」メニューから「ソリューションを再ビルド」した後、テストエクスプローラーですべてのテストを確認できました。うまくいけば、これが将来の誰かを助ける= D。
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
私の状況では、「NUnit3テストアダプター」が無効になっています。再度有効にするには、メニューに移動します
ツール->拡張機能とアップデート...
左側で「インストール済み」->「すべて」を選択します。
右上隅で「nunit」を検索します。
「NUnit3テストアダプター」がインストールされている場合は、見つかったアイテムで有効化/無効化できます。
この答えはかなり基本的なように見えますが、最初は完全にはわかりませんでした。ソリューションを(再)ビルドする場合、ビルドするように構成されているプロジェクトのみがビルドされます。Build -> Configuration Manager
これは私の問題でした。ビルド構成の設定を誤って変更したか、テストプロジェクトがビルドされない原因になっていました(以前のビルドの場合)。したがって、Test Explorer
ウィンドウは古くなったdllを見ていました。これは、a Clean
を実行した後、ほとんどのテストが消えて、フォルダーのrebuild
さらなる検査でbin
これらのプロジェクトがまったくビルドされていないことが判明した後に戻ってこないことがわかりました。
私は機能している設定(ソリューションに応じてNUnit2とNUnit3、および2012年から2017年の間に複数のバージョンのVisual Studio)を持っていましたが、ある日突然機能しなくなりました:ソリューションまたはVSのバージョンでテストが検出されませんでした。
私の場合、削除に役立ちました%localappdata%\Temp\VisualStudioTestExplorerExtensions
。VSの再起動後、すべてが以前と同様に機能しました。
ここで述べたように、VS 2017と.netコアを使用している場合は、テストフレームワークNUnit 3.6.1、テストランナーNUnit3TestAdapter 3.8.0-alpha1、およびテストSDK Microsoft.NET.Test.Sdkへの参照を追加する必要があります。 15.0.0。
NUnitTestAdapter.WithFrameworkを使用すると、NUnitとNUnitアダプターのバージョン間で不整合がほとんどまたはまったくないことが保証されます(つまり、「動作するだけ」)
[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!");
}
}
}
テストが発見されないという同様の問題がありました。NUnitの正しいバージョン、NUnitとアダプター間で一致するバージョン、および正しくタグ付けされたテストがありました。管理者としてではなく、VS 2017 Enterpriseを実行していました。管理者としてVSを起動した後、テストが表示されました。
テストプロジェクトを組み込んだ新しいソリューションを開始し、元の問題のあるプロジェクトと比較しました。オリジナルには、何らかの理由でapp.configが含まれていました。そのファイルをプロジェクトから除外したところ、テストがテストエクスプローラーに再表示されました。
私もこの問題を抱えていましたが、原因は異なりました。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#コアにリダイレクトします。
同じ問題がありましたが、突然、テストエクスプローラーウィンドウにテストが表示されませんでした。「NUnit3TestAdapter」のアップデート版を持っています
多くの検索と努力の結果、プロジェクトのプロパティで次の値を設定する必要があることがわかりました。 CPUビルドプロジェクトとすべてのテストがテストエクスプローラーウィンドウに表示されます。
重要な注意:出力ウィンドウに次のメッセージが表示された後、私は解決策に行きました:
「テスト実行では、Framework Framework45およびプラットフォームX86用にビルドされたDLLを使用します。次のDLLは実行の一部ではありません。AutomationTests.dllは、Framework Framework45およびPlatform X64用にビルドされています。」
ハングしたいくつかのmsbuild.exeプロセスがありました。それが私の問題かどうかはわかりませんが、ハングしたプロセスを見つける前に、さまざまなNUnitアダプターを再インストールするのにかなりの試行錯誤が必要でした。