最新のVS2017バージョン15.6.4、NUnit3TestAdapter 3.10.0およびNunitバージョン3.9.0.0を使用しています。
テストエクスプローラーで単体テストを実行しようとすると、テストがグレー表示され、右クリックして選択したテストを実行すると、次のエラーが表示されます:No test is availableテストクラスの外観は次のとおりです。
[TestFixture]
public partial class ListViewBOTest
{
[Test]
public void TestSearch_DateTime()
{
Assert.AreEqual(1,0);
}
}
出力からのテキスト:
[3/26/2018 10:53:55 AM Informational] ------ Run test started ------
[3/26/2018 10:53:55 AM Informational] NUnit Adapter 3.10.0.21: Test execution started
[3/26/2018 10:53:55 AM Informational] Running all tests in C:\Projects\MVPPlant\DEV\CMMSdg.Plant\CMMSdg.Plant\Sln.2010\CMMSdg.Plant.BusinessObjects.Test\bin\Debug\CMMSdg.Plant.BusinessObjects.Test.dll
[3/26/2018 10:53:56 AM Informational] NUnit failed to load C:\Projects\MVPPlant\DEV\CMMSdg.Plant\CMMSdg.Plant\Sln.2010\CMMSdg.Plant.BusinessObjects.Test\bin\Debug\CMMSdg.Plant.BusinessObjects.Test.dll
[3/26/2018 10:53:56 AM Informational] NUnit Adapter 3.10.0.21: Test execution complete
[3/26/2018 10:53:56 AM Warning] No test is available in C:\Projects\MVPPlant\DEV\CMMSdg.Plant\CMMSdg.Plant\Sln.2010\CMMSdg.Plant.BusinessObjects.Test\bin\Debug\CMMSdg.Plant.BusinessObjects.Test.dll. Make sure that test discoverer & executors are registered and platform & framework version settings are appropriate and try again.
[3/26/2018 10:53:56 AM Informational] ========== Run test finished: 0 run (0:00:01.0435303) ==========
Amete Blessedと同じ問題があり、他のテストメソッドをコメントアウトすると、テストエクスプローラーが機能し、テストを実行できました
ここからNUnit3テストアダプタがインストールされていることを確認してください
https://marketplace.visualstudio.com/items?itemName=NUnitDevelopers.NUnit3TestAdapter
次の手順を確認して、機能するかどうかを確認できますか?
Test > Test Settings > Default Processor Architecture
とX86
が選択されているか、X64
Build
ウィンドウのProperties
セクションに移動します。 Platform target
ドロップダウンはAny CPU
または少なくとも上記のアーキテクチャと一致するstep 1
。ソリューションをビルドしてこれらのテストを実行すると、テストが実行されていることがわかります。
ビルドイベントが間違っていることがわかりました。無効なコピーコマンドがすべてのテストと半日を吹き飛ばしました:
Copy C:\repo\Architecture\*.json $(ProjectPath)/Y
Copy C:\repo\Architecture\*.json $(TargetPath) /Y
の代わりに
Copy C:\repo\Architecture\*.json $(ProjectDir)/Y
Copy C:\repo\Architecture\*.json $(TargetDir) /Y
Nugetを介してNUnitをインストールすると、テストエクスプローラーにテストが表示されますが、実行すると「テストが利用できません」と表示されます。 NUnitテストアダプターをインストールすると、問題が修正されました。
[テスト出力]ウィンドウのメッセージ(「NUnitのロードに失敗しました[アセンブリ]」、「テストがありません...」など)により、ランナーがテストアセンブリをロードしない原因となっている根本的な問題を隠すことができます。これには、テストアセンブリまたはテスト中のアイテムの依存関係を読み込むための失敗の非表示が含まれます。
[テストエクスプローラー]ウィンドウに表示されるテストアセンブリがあるが、テストの実行が拒否される場合、テストを実行しようとするときにアセンブリバインディングエラーが発生するかどうかを確認するために、一時的にフュージョンログを有効にする価値があります。
テストエクスプローラーを使用するのではなく、ソリューションを右クリックして、そこからユニットテストを実行できますか?
私のために働いたのは、%localappdata%\Microsoft\VisualStudio\<version>
にあるComponentModelCache
フォルダーを削除することでした
同じ問題があった。私の場合、テストプロジェクトにMSTestへの参照が含まれている場合、NUnitテストアダプターはテストエクスプローラーによって使用されないことがわかりました。通常はMicrosoft.VisualStudio.TestPlatform.TestFramework.dllですが、.csprojファイルの "MSTest"およびpackages.configファイルも確認してください。
最初にVisual Studioテストの診断ログを有効にして、これを発見しました。これは、[ツール]-> [オプション]-> [テスト]-> [ログレベル]にあります。
私のログでは、このエントリを見つけました:
[22/11/2018 10:36:42診断]プロジェクトC:\ Git\myProject\src\myProject.Tests\myProject.Tests.csprojはテストアダプターを参照します:MSTest.TestAdapter、バージョン1.1.18
Xamarin.Formsを使用しているときに、同様の問題が発生しました。解決策は、NuGetからNUnit.XFormsをインストールして追加することでした
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.3.0" />
テストがあるプロジェクトのcsprojファイルに。
これはメモリの問題が原因です。
サンプルコード
private TestController testController;
[OneTimeSetUp]
public void TestSetup()
{
testController= new TestController();
}
[OneTimeTearDown]
public void TestCleanup()
{
testController= null;
}
テスト->テスト設定->デフォルトプロセッサアーキテクチャ-> x64。