私は既存のソリューションを.Net 4.6.1にアップグレードする過程にあり、サーバーのビルド中にユニットテストを実行することができませんでした。ローカルで期待どおりに実行され、フレームワークバージョンを.Net 4.5.1に戻すと、サーバー上で再び実行されます。
次のエラーが表示されます。
テストが見つかりません。インストールされているテストディスカバリーとエグゼキューター、プラットフォームとフレームワークのバージョン設定が適切であることを確認して、再試行してください。
私は簡単なセットアップで問題を再現しました:
私のビルドもテストを見つけられませんでした。テストを見つけるための私のセットアップとソリューションは次のとおりです。
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
お役に立てれば。
私の場合、:
1)テストプロジェクトをnetcore 2.0に変換します(netstandard 2.0でした)
2)nugetパッケージxunit.runner.visualstudio
を追加します
参照: http://www.neekgreen.com/2017/11/20/xunit-no-test-is-available/
このエラーが発生し、解決できました。
MSTestを使用しています。私にとっては、バージョンの不一致と別の依存パッケージの欠落-
1)パッケージフォルダーには、MSTest.TestFramework.1.2.1パッケージのみが含まれています。私のプロジェクトファイル(.csproj)では、ターゲット名の参照はMSTest.TestAdapter.1.2.0パッケージであり、パッケージフォルダーにはありませんでした。 packages.configにはMSTest.TestFramework.1.2.0の参照もあります。
2)そこで、Nuget Package ManagerからMSTest.TestAdapter.1.2.0をインストールし、プロジェクトとパッケージファイルでMSTest.TestFrameworkバージョンを1.2.0に合わせました。最後に、参照にMicrosoft.VisualStudio.TestPlatform.TestFrameworkおよびMicrosoft.VisualStudio.TestPlatform.TestFramework.Extensionsを追加します。
その後、すべてがOKでした。これが誰かを助けることを願っています。
この問題はVisual Studio 2017で再び表面化します。おそらく別のバグですが、同じ結果になります。
動作していると思われる1つの回避策は、影響を受けるマシンからMicrosoft Visual Studio 2017 Remote Debuggerをアンインストールすることです。
VS 2017および4.6.2のテストプロジェクトの問題ごとに、次の手順でこれを修正しました。
これは.Net 4.6の既知の問題です。
TFS 2015 UPdate1を使用したXAML TFSビルドの一部として.Net 4.6.x単体テストを実行できないSource:https:// connect .Microsoft.com/VisualStudio/feedback/details/224572
参照用の同様の質問を次に示します。 TFS 2015 XAMLビルドサーバーの.Net 4.6ユニットテストを実行できません
「Microsoft.NET.Test.Sdk」ナゲットがインストールされていることを確認してください。
プロジェクトのすべてのテスト関連のNuGetパッケージを再インストールして、この問題を修正しました:Xunit、Xunit.runner.vistualstudio、Microsoft.Net.Test.Sdk
道を見つけた!おそらく最もオーソドックスではありませんが、急いで助けてくれました。
バージョンに特別なことはないと思いますが、それを更新すると、ソリューション/プロジェクトで悪い参照があればすべて削除されます。
同様の問題が発生していましたが、テストプロジェクトにapp.config
ファイルが追加されていることに気づきました。この設定ファイルを削除すると、修正されました。
VS 2017でnUnitを試してみたところ、同様の問題に直面しましたが、これはコアプロジェクトではありません。 NUnit3TestAdapterをインストールすると、問題が修正されました。
ユニットテストクラスがパブリックではなかったため、このエラーが発生しました。
例:
class ClientTests
出力のエラー:
...\bin\Debug\Tests.dll] UTA001: TestClass attribute defined on non-public class ClientTests
補正:
public class ClientTests
CommandaderにTestAdapterPathを追加した後、それは私のために働いた:
vstest.console.exe Xom.Gci.Lvf.FileParserInvoker.UnitTests.dll /TestAdapterPath:"C:\****\****\{SolutionFolder}"
私の場合、Nunit3アダプターの再インストール、一時フォルダーの削除、アーキテクチャーの変更などは機能しませんでした。 Daemon Resharperが原因で問題が発生しました。
Add or Remove Programs> Find Resharper > Repair > Install again > Restart VS
これで問題が解決します。
このエラーは、戻り値のタイプが間違っている場合、非同期テストで発生する可能性があります。戻り値の型はTaskであり、voidではありません。
Visual Studio 2017では、NUnitTestAdapterをアンインストールして再インストールするか、NUnitTestAdapter.WithFrameworkパッケージなどの新しいパッケージをインストールして、問題はなくなりました。
多段階のビルドを使用して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
私は同じ問題を抱えています。 Visual Studio 2017 Community Editionを使用しています。
これらの手順を使用して、すべてのテストケースを正常に検出し、正常に実行しました。
まず、拡張機能と更新プログラムに移動し、NUnit3テストアダプターをインストールします。既にお持ちの場合は、有効にしてください。
Visual Studio 2017を再起動すると、自動的にプロンプトが表示されます
続行するタスクを終了するようプロンプトが表示された場合、拡張機能をインストールします
インストール、「タスクの終了」をクリックするだけです。
その後、テストプロジェクトを再構築すると、すべてのテストケースが識別され、テストケースの実行を開始できるようになります。
私の場合、テストは発見されましたが、実行すると "Test not Available ..."と(in)famous:「テストディスカバリーとエグゼキューターが登録されていること、プラットフォームとフレームワークのバージョン設定が適切であることを確認して、再試行してください。」
このエラーはVisual Studio(ドットネットCLIツールとほぼ裸のUNitテストでテスト済み)に依存せず、.NET 4.7.1を対象とした場合にのみ発生しました。 dotnetcoreアプリは正常に動作します。
また、Nuint3 CLI nunit3-console.exe Tests.csproj
を使用してテストを実行すると、エラーが表示されます。
"どちらのアセンブリにもテストが含まれていないか、適切なテストドライバが見つかりません。"
エラーは、テストアダプターが(マップされた)ネットワークドライブまたは共有で見つからず、ローカルでコピーによって解決され、再実行されたためでした。
TFS 2017で.Net Coreをビルドパイプラインと共に使用すると、Visual Studioのテストステップが実際にテストを実行せずに通過していました。ステップを編集する必要がありました:「高度な実行オプション」->「その他のコンソールオプション」:
/framework:".NETCoreApp,Version=v2.0"
(そのフィールドには/platform:x64
も含まれています)