テストが見つかりませんでした。インストールされているテストディスカバラーとエグゼキューター、プラットフォームとフレームワークのバージョン設定が適切であることを確認して、再試行してください


95

私は既存のソリューションを.Net 4.6.1にアップグレードする過程にあり、サーバービルド中にユニットテストを実行できませんでした。ローカルでこれらは期待どおりに実行され、フレームワークのバージョンを.Net 4.5.1に戻すと、サーバーで再び実行されます。

次のエラーが発生します。

テストが見つかりませんでした。インストールされているテストディスカバラーとエグゼキューター、プラットフォームとフレームワークのバージョン設定が適切であることを確認して、再試行してください。

より簡単な設定で問題を再現しました:

  • 2つのテスト(1つは失敗、1つは合格)を含む単一のC#単体テストプロジェクトを使用したソリューション。
  • デフォルトテンプレート(TfvcTemplate.12.xaml)を使用したXAMLビルド定義
  • Visual Studio Enterprise 2015 Update 1がインストールされたTFS 2015 Update 1 XAMLビルドサーバー(6つの類似したサーバーがあり、すべて同じ結果を生成します)

MicrosoftのBrian Harry氏によると、これは現在調査中のバグです。これはUpdate 2で修正され、一時的な回避策が後で投稿される予定です。出典:リンク
ToreØstergaard、2016年

私は、Visual Studio 2013の更新5に.NET 3.5 SP1のために同じ問題を抱えている
アンドレイ・ブッシュマン

@AndreyBushman:エラーは2015RTMとともにリリースされたため、2013U5にもある可能性があります。しかし、回避策はあなたの場合にもうまくいくはずです。
Østergaardとれ

私にも同様の問題がありました。回避策は、適切なデフォルトプロセッサ(32/64)ビットを選択するためのテスト設定と比較して、エンジンの実行を維持しないことです。(2017.xとの比較)
kfn 2018年

回答:


59

テスト設定のデフォルトのプロセッサアーキテクチャをX86からX64 に変更してみてください。私の場合、これが問題でした。

これは、テスト中のプロジェクトのプラットフォームターゲットがに設定されてx64いる場合に発生します。

テスト設定のスクリーンショット


これで解決しました。私の場合、テスト中のプロジェクトとテストプロジェクトの両方がx86に設定されていました。テストは無効にできましたが、実行できませんでした。Any CPUに変更した後、テストが実行されました。
ダッチング

私は同じ問題を抱えていて、これで解決しました。また、これがメインプロジェクトの参照に否定的な相乗効果をもたらし、特定のDLLの読み込みを突然停止したが、この厄介な副作用を決定的に決定していないことも疑わしいです。
アレン

44

私のビルドもテストを見つけていませんでした。テストを見つけるための私のセットアップとソリューションは次のとおりです。

私はVSTS(Visual Studio Team Services)を使用しており、ビルドごとにNUGETパッケージを更新するように構成されたビルドがあります。NUnitを使用していて、次のNUGETコマンド(Visual Studioのパッケージマネージャーコンソールから)を実行してNUnitTestAdapterライブラリをテストプロジェクトに追加し、packages.configでチェックすると、テストがVSTSビルドで実行されることがわかりました。

Install-Package NUnitTestAdapter

MauriceがNUnit3のこの投稿へのコメントで言及しているように、次のNUGETパッケージを使用します(リンク上の他のユーティリティを探します。例:dotnet CLIおよびPaket CLI)

Install-Package NUnit3TestAdapter

お役に立てれば。


10
現在、VSTSも使用しています。助言されたように、私はNUnit3TestAdapterを追加しました(私はNUnit 3.8.1を使用しているため)、このソリューションは私の問題を解決しました。ありがとうございます:-)
モーリスクリメック2017年

1
Install-Package NUnit3TestAdapterは私の問題を解決しました:)
Bimal Das

26

私の場合、しなければならなかった:

1)テストプロジェクトをnetcore 2.0に変換します(以前はnetstandard 2.0)。

2)nugetパッケージを追加する xunit.runner.visualstudio

リファレンス:http : //www.neekgreen.com/2017/11/20/xunit-no-test-is-available/


2
同じ問題が私にもありました。私は、.NETコアとxUnitフレームを使用しています
Amna

これは、xunitと.NET Core 2.1を使用するVisual Studio 2017でも機能しました。
ThorkilVærge18年

3
私の場合は.net 4.6.1プロジェクトだったので、不足しているのはxunitランナーだけでした。インストールして動作しました。
フアン

1
フアンと同じ。ランナーパッケージのみがありませんでした。テストプロジェクトのパッケージマネージャーでこれを実行すると解決しました:install-package xunit.runner.visualstudio
Premil

11

このエラーが発生し、解決できました。

  1. Visual Studio Professional 2017を使用しています
  2. VSで、ツール->拡張機能と更新に移動しました
  3. メニューの上部で、NUnitアダプターが無効になっていることに気付きました
  4. [有効にする]ボタンをクリックした
  5. エラーなしでテストを開始できました。

はい!また、Visual Studioを再起動することを忘れないでください。それは私にとって必要でした。
Michael Levy

「メニューの一番上」とはどういう意味ですか?
Sean Kendle

1
@SaiyajinGohan。手順2を完了すると、[拡張機能と更新]ウィンドウが表示されます。このウィンドウの上部に、NUnitアダプターが無効になっているのが見えました。これが明確に
Jウッド

そのおかげで、私は自分が取り組んでいるプロジェクトでこれを機能させることができませんでした。幸い、それはテストプロジェクトであり、次のプロジェクトは機能しました。理由はまだ謎です。
ショーンケンドル

10

MSTestを使用しています。私にとって、それはバージョンの不一致と別の依存パッケージの欠落でした-

1)パッケージフォルダーにMSTest.TestFramework.1.2.1パッケージのみが含まれています。プロジェクトファイル(.csproj)では、ターゲット名の参照はMSTest.TestAdapter.1.2.0パッケージでしたが、パッケージフォルダーにはありませんでした。私のpackages.configにもMSTest.TestFramework.1.2.0の参照があります。

2)それで、nugetパッケージマネージャーからMSTest.TestAdapter.1.2.0をインストールし、プロジェクトとパッケージファイルのMSTest.TestFrameworkバージョンを1.2.0に合わせました。最後に、参照にMicrosoft.VisualStudio.TestPlatform.TestFrameworkとMicrosoft.VisualStudio.TestPlatform.TestFramework.Extensionsを追加します。

その後、すべてがOKでした。これが誰かを助けることを願っています。


.Net 4.6.1 VS2017でこれにぶつかりました。最終的に1.2.0にロールバックしました-パッケージフォルダーまたはソース管理に2つの異なるバージョンがないことを確認してください。
Jeremy Thompson、

2
鉱山はテストを見つけるように見えましたが、はい、「MSTest.TestAdapter」が欠落していることが本当の問題でした。素敵なエラーや警告はありません(VS2017 15.8)。テストエクスプローラーに表示されているにもかかわらず、テストが見つからなかったことを除いて、すべてが問題ありませんでした。MSに感謝-3時間を無駄にした...........
James Joyce、

1
MSTest.TestAdapter 1.4.0をインストールすると、VS 2019でそれが実行されました。おかげで、30分しか無駄になりませんでした。
furman87

6

この問題は、Visual Studio 2017でも再び発生します。おそらく別のバグですが、同じ結果です。

動作しているように見える1つの回避策は、影響を受けるマシンからMicrosoft Visual Studio 2017 Remote Debuggerをアンインストールすることです。


5
  1. NUGETパッケージからNunitおよびNUnitTestAdapterの最新バージョンをインストールします。
  2. ->テスト->テスト設定->デフォルトのプロセッサアーキテクチャ-> X64に変更に移動します。
  3. ソリューションを構築します。
  4. これにより、単体テストでのテストの実行とデバッガーの問題が解決され、機能し始めます。

これは実際に私のために多くの方向と提案で頭を叩いた後うまくいきました。
rajibdotnet

4

.Net 4.6.2を使用したVSTSで同じ問題が発生しました。これがVSTSコンソール出力から表示されている場合、@ Sushilによって提供される回避策はVSTSでも機能し、必要です。残念ながら、Microsoftが提供する「テストアセンブリ」タスクは成功するため、出力を確認して実際に実行されたテストが1つも見つからない限り、問題が発生していることさえわかりません。

VSTSテスト修正


私の問題は(オンプレミスの)TFS 2015 Update 1にあり、Update 2で修正されました。同じ問題がVSTSに存在する/存在するかどうかはわかりません。
Østergaardとれ

4

マルチステージビルドを使用してdocker内でテストを実行していて、テストが見つからない場合。以下のDockerfileセクションのようなプロジェクトファイルだけでなく、すべてのファイルをコピーしてください。

FROM mcr.microsoft.com/dotnet/core/sdk:2.2-stretch AS build
WORKDIR /src
COPY ["MainProject/FirstApp.csproj", "MainProject/"]
COPY ["TestProject/*", "TestProject/"]

RUN dotnet restore "TestProject/TestProject.csproj"
RUN dotnet build "TestProject/TestProject.csproj" -c Release
RUN dotnet test "TestProject/TestProject.csproj" -c Release

これは確かに私を噛みました。これが起こっている手がかりは、ユニットテストDLLを見つけることですが、その中にテストが見つかりません。また、コピーステートメントの後にこれをインラインで配置すると、コピーされたWASを調べることができます(ここで/ app / testsはDockerイメージのターゲットディレクトリです)。RUN file = "$(ls -al / app / tests) "&& echo $ file(echoの詳細については、この投稿を参照してください)
David Yates

3

私はこれをVS 2017&4.6.2テストプロジェクトの問題で次の手順で修正しました:

  1. Microsoft.VisualStudio.QualityTools.UnitTestFramework.dllと拡張機能への参照を削除する
  2. Microsoft.VisualStudio.QualityTools.UnitTestFramework.Updated nugetパッケージをインストールします。


2

これは.Net 4.6の既知の問題です。

TFS 2015 UPdate1を使用したXAML TFSビルドの一部として.Net 4.6.xユニットテストを実行できないソース:https : //connect.microsoft.com/VisualStudio/feedback/details/2245723

あなたが参照するための同様の質問があります:TFS 2015 XAMLビルドサーバーの.Net 4.6ユニットテストを実行できません


2
こんにちはパトリック。あなたが提供するリンクは両方とも私が開いたケースなので、参照としてそれらを信頼しません;-)。
Østergaardとれ

2

私はプロジェクトのために、すべてのテスト関連のNuGetパッケージを再インストールすることで、この問題を修正しました: XunitXunit.runner.vistualstudioMicrosoft.Net.Test.Sdk


1

同様の問題が発生し、app.configファイルがテストプロジェクトに追加されていることに気付きました。この構成ファイルを削除すると、修正されました。


1

解決策をヒープに投げます。私の場合、既存のソリューションにいくつかのプロジェクトとそれらのテストプロジェクトを追加しています。MSTestを使用しています。以前のUnitTest.testsettingsファイルは、互換性の問題を引き起こしていたソリューションで有効にされていました。

設定ファイルをクリックするとチェックが削除され、テストは正常に実行されました。

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


1

道を見つけた!おそらく最もオーソドックスではないかもしれませんが、それは私を急いで助けました。

  1. MSTest.TestAdapterおよびMSTest.TestAdapterFrameworkパッケージを[ツール]> [NuGetパッケージマネージャー]から1.4.0に更新します。
  2. ソリューションをクリーンアップして、テストを再度実行してください。

私はバージョンに特別なことはないと思いますが、それを更新することで、ソリューション/プロジェクトの悪い参照はすべて確実に削除されます。


0

これは、@ Sushilによって以前に提唱されたソリューションの要約です。

これはTeam Foundation Server 2015 RTM + Update 1の既知の問題であり、Update 2のリファレンスで修正される予定です。

ここに@Sushil 説明されている回避策があります。これには、テストランナーを古い.Netフレームワークに強制する.runsettingsファイルを追加することが含まれます([Add / Edit Test Run]ダイアログで直接追加するように指定する必要はありません)ビルドプロセスエディターでは無視されます)。


0

TFS 2017のビルドパイプラインで.Net Coreを使用すると、実際にテストを実行せずにVisual Studioテストステップが成功しました。ステップを編集する必要がありました。「高度な実行オプション」->「その他のコンソールオプション」に以下を含めます。

/framework:".NETCoreApp,Version=v2.0"

(そのフィールドにはも含まれます/platform:x64


0

Visual Studio 2017では、NUnitTestAdapterをアンインストールして再インストールするか、NUnitTestAdapter.WithFrameworkパッケージのような新しいパッケージをインストールするだけで問題が解決します。


0

ユニットテストクラスがパブリックではなかったため、このエラーが発生しました。

例:

class ClientTests

出力のエラー:

...\bin\Debug\Tests.dll] UTA001: TestClass attribute defined on non-public class ClientTests

補正:

public class ClientTests


0

同じ問題が発生しています。Visual Studio 2017 Community Editionを使用しています。

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

これらの手順を使用して、すべてのテストケースを正常に検出し、正常に実行しました。

  • まず、拡張機能と更新に移動し、NUnit3テストアダプターをインストールします。すでに持っている場合は、それを有効にしてください。

  • Visual Studio 2017を再起動
    すると、拡張機能をインストールするように自動的に求められます。インストールを続行
    するためにタスクを終了するように求められた場合は、[タスクを終了]をクリックしてください。

  • その後、テストプロジェクトを再構築すると、すべてのテストケースが識別され、テストケースの実行を開始できます。


0

私の場合、Nunit3アダプタの再インストール、一時フォルダの削除、アーキテクチャの変更など、何も機能しませんでした。Daemon Resharperが原因で問題が発生しました。

Add or Remove Programs> Find Resharper > Repair > Install again > Restart VS 

これで問題が解決します。


0

このエラーは、戻り値のタイプが間違っている場合、非同期テストで発生する可能性があります。戻り値の型は空ではなく、タスクでなければなりません。


0

司令官にTestAdapterPathを追加した後、それは私のために働いています:

vstest.console.exe Xom.Gci.Lvf.FileParserInvoker.UnitTests.dll /TestAdapterPath:"C:\****\****\{SolutionFolder}"

まず、テストケースがVS IDEで実行できることを確認する必要があります。
dixiashi

0

私の場合、テストは検出されましたが実行中の結果、「テストが利用できません...」と(有名な)「テストの検出と実行が登録され、プラットフォームとフレームワークのバージョン設定が適切であることを確認して、再試行してください。」

エラーはVisual Studio(dotnet CLIツールからテストされ、ほぼ裸のUNitテスト)に依存せず、.NET 4.7.1を対象とした場合のみでした。dotnetcoreアプリは正常に動作します。

また、Nuint3 CLIでテストを実行すると nunit3-console.exe Tests.csproj、エラーが表示されます。

「アセンブリーにテストが含まれていないか、適切なテストドライバーが見つかりません。」

エラーは、テストアダプターが(マップされた)ネットワークドライブまたは共有で見つからなかったためであり、ローカルにコピーして再実行することで解決しました。


0

テストプロジェクトにテストアダプターを既にインストールしている場合は、プロジェクトからアンインストールして、テストプロジェクトに再度インストールしてください。

この基本的な修正は私にとってはうまくいきます。


0

で実行vstest.console.exe--diag:diag.txtて、出力を確認してください。私にとっては、私の作業ディレクトリからのテストアダプターのDLL読み込みエラーでした。

TpTrace Information: 0 : 14976, 1, 2020/03/10, 15:34:22.120, 57158093583, vstest.console.exe, AssemblyResolver.OnResolve: Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter: Failed to load assembly. Reason:System.IO.FileLoadException: Could not load file or assembly 'file:///C:\Directory\Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.dll' or one of its dependencies. Operation is not supported. (Exception from HRESULT: 0x80131515)

File name: 'file:///C:\Directory\Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.dll' ---> System.NotSupportedException: An attempt was made to load an assembly from a network location which would have caused the assembly to be sandboxed in previous versions of the .NET Framework. This release of the .NET Framework does not enable CAS policy by default, so this load may be dangerous. If this load is not intended to sandbox the assembly, please enable the loadFromRemoteSources switch. See http://go.microsoft.com/fwlink/?LinkId=155569 for more information.

vstest.console.exe.configに<loadFromRemoteSources enabled="true"/>アンダー<runtime>を追加してこれを回避しました


0

MSTestを使用しています。

Nugetから最新バージョンのMSTest.TestFrameworkをインストールし、OOBを置き換えましたMicrosoft.VisualStudio.QualityTools.UnitTestFramework.dllへの参照を削除します

次に、最新バージョンのMicrosoft.TestPlatformをネゲットからインストールします

それは私がコマンドでテストを実行することを可能にしました:

".\packages\Microsoft.TestPlatform.16.6.1\tools\net451\Common7\IDE\Extensions\TestPlatform\vstest.console.exe" "UnitTestProject1\bin\Debug\UnitTestProject1.dll" /logger:trx

しかし、同じエラーが発生しました。アセンブリを解析してテストを見つけるテストアダプターを指定しなかったというエラーの根本的な原因。

解決:

  1. nugetパッケージ「MSTest.TestAdapter」をインストールします

  2. コマンドの最後にテストアダプターを指定します。

    /TestAdapterPath:".\packages\MSTest.TestAdapter.2.1.2\build_common "


0

同様の問題に直面している人のために。これが解決策です、SpecFlowPlusRunnerをインストールしてください。

再インストール、キャッシュの削除など、他の解決策を試してみましたが、解決策は実際には異なります。visualstudio2017のSpecRun.SpecFlow2.3.0をインストールする必要があります。これで問題は解決しました。

これが皆さんのお役に立てば幸いです。


0

私はVS 2017でnUnitを試したときに同様の問題に直面しましたが、それはコアプロジェクトではありません。インストールNUnit3TestAdapterは問題を修正しました。

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