NUnit Test Adapter for VS2012 + 2013 をインストールしました。最初にインストールしたときは Adapter テストが表示されていましたが、今日何らかの理由で表示されなくなりました。ビルド、再構築、クリーニング、再起動の後、テスト エクスプローラーに何も表示されません。なぜこれが起こるのでしょうか?VS2013 Ultimate を使用しています。
25 に答える
テスト プロジェクトが 64 ビット プラットフォームを対象とするように設定されている場合、テストは NUnit テスト アダプターに表示されません。
この答えはかなり基本的なようですが、最初は完全にはわかりませんでした。ソリューションを (再) ビルドすると、ビルドするように構成されているプロジェクトのみがビルドされます。Build -> Configuration Manager
これは私の問題でした。ビルド構成設定を誤って変更したか、テスト プロジェクトがビルドされない原因となったものに違いありません (以前はそうであった場合)。そのため、Test Explorer
ウィンドウは古い dll を見ていました。Clean
実行した後、ほとんどのテストが消えて戻ってこないのを確認した後、これが事実であることが明らかになりましたrebuild
...フォルダーをさらに調べbin
たところ、これらのプロジェクトがまったくビルドされていないことが示されました。
ここで述べたように、VS 2017 と .net コアを使用している場合は、テスト フレームワークNUnit 3.6.1、テスト ランナーNUnit3TestAdapter 3.8.0-alpha1、およびテスト SDK Microsoft.NET.Test.Sdkへの参照を追加する必要があります。 15.0.0。
[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 v3.2.1 をアンインストールしたときに、v3.2.1 の nunit フレームワーク リファレンスがソリューション エクスプローラーのプロジェクトに残っていることもわかりました。ソリューション エクスプローラー > ProjectName > 参照
右クリックするとバージョンが表示されます。これを削除してから、[参照] > [参照の追加] を右クリックします。
バージョン 2.x バージョンを検索し、ソリューションを追加して再構築します。
それは私のために働いた!
テストクラスが公開されていることを確認してください。私はしばしばこの間違いを犯し、コードを 5 分間見て、何が起こっているのかを確認します。
[テスト]
public void YourTest() { ... }
テスト プロジェクトを含む新しいソリューションを開始し、元の問題プロジェクトと比較しました。オリジナルには、何らかの理由でapp.configが含まれていました。そのファイルをプロジェクトから除外したところ、テスト エクスプローラーにテストが再表示されました。
私もこの問題を抱えていましたが、原因は異なっていました。F# 4.0 で VS2017 を使用しています。
まず、Visual Studio のコンソールには、テストが見つからなかった理由の詳細が十分に表示されません。テストで DLL のロードに失敗するだけです。したがって、コマンド ラインで NUnit3console.exe を使用すると、詳細が表示されます。
私の場合は、テスト アダプターが F# Core 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# コアにリダイレクトします。