web-dev-qa-db-ja.com

VS2017およびNUnit 3.9テストは利用できません

最新の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);
      }

    }

Here is a screenshot of my tests

出力からのテキスト:

[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) ==========
18
Amete Blessed

Amete Blessedと同じ問題があり、他のテストメソッドをコメントアウトすると、テストエクスプローラーが機能し、テストを実行できました

1
Cubelaster

ここからNUnit3テストアダプタがインストールされていることを確認してください

https://marketplace.visualstudio.com/items?itemName=NUnitDevelopers.NUnit3TestAdapter

29
Peter Morris

次の手順を確認して、機能するかどうかを確認できますか?

  1. Visual Studioメニューで、Test > Test Settings > Default Processor ArchitectureX86が選択されているか、X64
  2. 次に、テストが記述されているプロジェクトのBuildウィンドウのPropertiesセクションに移動します。 Platform targetドロップダウンはAny CPUまたは少なくとも上記のアーキテクチャと一致するstep 1

ソリューションをビルドしてこれらのテストを実行すると、テストが実行されていることがわかります。

15
hem

ビルドイベントが間違っていることがわかりました。無効なコピーコマンドがすべてのテストと半日を吹き飛ばしました:

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
1
Erik McCarty

Nugetを介してNUnitをインストールすると、テストエクスプローラーにテストが表示されますが、実行すると「テストが利用できません」と表示されます。 NUnitテストアダプターをインストールすると、問題が修正されました。

[テスト出力]ウィンドウのメッセージ(「NUnitのロードに失敗しました[アセンブリ]」、「テストがありません...」など)により、ランナーがテストアセンブリをロードしない原因となっている根本的な問題を隠すことができます。これには、テストアセンブリまたはテスト中のアイテムの依存関係を読み込むための失敗の非表示が含まれます。

[テストエクスプローラー]ウィンドウに表示されるテストアセンブリがあるが、テストの実行が拒否される場合、テストを実行しようとするときにアセンブリバインディングエラーが発生するかどうかを確認するために、一時的にフュージョンログを有効にする価値があります。

1
Phil

この問題 の犠牲者であったかもしれませんが、15.6.3で(理論的に)解決されました。 この回答 に従って、%temp%\VisualStudioTestExplorerExtensionsフォルダー。これにより、他の一部のユーザーの問題は解決しました。

0
Nick DeVore

テストエクスプローラーを使用するのではなく、ソリューションを右クリックして、そこからユニットテストを実行できますか?

0
Nick Booth

私のために働いたのは、%localappdata%\Microsoft\VisualStudio\<version>にあるComponentModelCacheフォルダーを削除することでした

0
Joakim M. H.

同じ問題があった。私の場合、テストプロジェクトに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

0
Rob Powell

Xamarin.Formsを使用しているときに、同様の問題が発生しました。解決策は、NuGetからNUnit.XFormsをインストールして追加することでした

<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.3.0" />

テストがあるプロジェクトのcsprojファイルに。

0
AGR

これはメモリの問題が原因です。

  • テスト実行後のオブジェクトのクリーニング

サンプルコード

private TestController testController;

[OneTimeSetUp]

public void TestSetup()

{

testController= new TestController();

}



[OneTimeTearDown]

public void TestCleanup()

{

testController= null;

}
  • 設定でテストの実行を64ビットに変更する

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

0
MrTesla