Jestem w trakcie uaktualniania naszego istniejącego rozwiązania do .Net 4.6.1 i nie mogłem uruchomić naszych testów jednostkowych podczas kompilacji serwera. Lokalnie działają zgodnie z oczekiwaniami, a zmiana wersji frameworka z powrotem na .Net 4.5.1 powoduje ich ponowne uruchomienie na serwerze.
Otrzymuję następujący błąd:
Nie znaleziono testu. Upewnij się, że zainstalowane narzędzia do wykrywania i wykonywania testów, ustawienia wersji platformy i frameworka są odpowiednie i spróbuj ponownie.
Odtworzyłem problem w prostszej konfiguracji:
- Rozwiązanie z jednym projektem testów jednostkowych języka C # z dwoma testami (jeden zakończony niepowodzeniem, jeden pomyślny).
- Definicja kompilacji XAML przy użyciu szablonu domyślnego (TfvcTemplate.12.xaml)
- Serwer kompilacji TFS 2015 Update 1 XAML z zainstalowanym programem Visual Studio Enterprise 2015 Update 1 (ma sześć podobnych serwerów i wszystkie dają ten sam wynik)
unit-testing
tfs
build
tfs-2015
Tore Østergaard
źródło
źródło
Odpowiedzi:
Jest to obecnie znany problem dotyczący platformy .Net 4.6.
Oto podobne pytanie do odniesienia: nie można uruchomić testów jednostkowych .Net 4.6 serwera kompilacji XAML TFS 2015
źródło
Możesz spróbować zmienić domyślną architekturę procesora w ustawieniach testowych z X86 na X64. W moim przypadku to był problem.
Dzieje się tak, jeśli platforma docelowa testowanego projektu jest ustawiona na
x64
.źródło
Moja kompilacja też nie znalazła testów. Moja konfiguracja i rozwiązanie do znajdowania testów są następujące.
Używam VSTS (Visual Studio Team Services) i mam kompilację skonfigurowaną do odświeżania pakietów NUGET w każdej kompilacji. Używam NUnit i stwierdziłem, że uruchomienie następującego polecenia NUGET (z konsoli menedżera pakietów w programie Visual Studio) w celu dodania biblioteki NUnitTestAdapter do mojego projektu testowego i sprawdzenie w pliku packages.config spowodowało uruchomienie testów w mojej kompilacji VSTS.
Jak Maurice wspomina w komentarzu do tego postu dla NUnit3 użyj następującego pakietu NUGET (poszukaj innych narzędzi w linku, tj .: dotnet CLI i Paket CLI)
Mam nadzieję że to pomoże.
źródło
W moim przypadku musiałem:
Konwertuj projekt testowy na netcore 2.0 (poprzednio netstandard 2.0)
Dodaj pakiet NuGet
xunit.runner.visualstudio
Źródła: http://www.neekgreen.com/2017/11/20/xunit-no-test-is-available/
źródło
Używam MSTest. Dla mnie była to niezgodność wersji i brak innego pakietu zależnego -
1) Mój folder z pakietami zawiera tylko pakiet MSTest.TestFramework.1.2.1. W moim pliku projektu (.csproj) odwołaniem w Nazwa docelowa był pakiet MSTest.TestAdapter.1.2.0, którego nie było w folderze pakietu. Moje packages.config ma również odniesienie do MSTest.TestFramework.1.2.0.
2) Więc zainstalowałem MSTest.TestAdapter.1.2.0 z menedżera pakietów NuGet i wyrównaj wersję MSTest.TestFramework do 1.2.0 w projekcie i pliku pakietu. Na koniec dodaję Microsoft.VisualStudio.TestPlatform.TestFramework i Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions w referencji.
Wtedy wszystko było w porządku. Mam nadzieję, że to komuś pomoże.
źródło
Otrzymałem ten błąd i udało mi się go rozwiązać.
źródło
Ten problem pojawia się ponownie dla programu Visual Studio 2017. Najprawdopodobniej kolejny błąd, ale ten sam wynik.
Jednym z obejść, które wydaje się działać, jest odinstalowanie zdalnego debugera programu Microsoft Visual Studio 2017 z komputera, którego dotyczy problem.
źródło
Napotkałem ten sam problem w VSTS z .Net 4.6.2. Jeśli widzisz to na wyjściu konsoli VSTS, obejście dostarczone przez @Sushil nadal działa w VSTS i jest potrzebne. Niestety zadanie „Test Assemblies” dostarczone przez Microsoft kończy się powodzeniem, więc tak naprawdę nie wiesz nawet, że jest problem, chyba że sprawdzisz dane wyjściowe i nie stwierdzisz, że żaden z testów nie został faktycznie wykonany!
źródło
źródło
Jeśli uruchamiasz testy wewnątrz platformy docker przy użyciu kompilacji wieloetapowej, a testy nie zostaną znalezione. Upewnij się, że kopiujesz wszystkie pliki, a nie tylko pliki projektu, jak poniżej sekcja Dockerfile.
źródło
Naprawiłem ten problem w projekcie testowym VS 2017 i 4.6.2, wykonując następujące kroki:
źródło
Upewnij się, że masz zainstalowany nuget „Microsoft.NET.Test.Sdk”.
źródło
Naprawiłem ten problem poprzez ponowne zainstalowanie wszystkich badań związanych pakiety Nuget dla projektu:
Xunit
,Xunit.runner.vistualstudio
,Microsoft.Net.Test.Sdk
źródło
Otrzymałem podobny problem i zauważyłem, że w jakiś sposób
app.config
plik został dodany do mojego projektu testowego. Usunięcie tego pliku konfiguracyjnego naprawiło to za mnie.źródło
Korzystając z platformy .Net Core z potokiem kompilacji w programie TFS 2017, mój krok testowy programu Visual Studio przebiegał pomyślnie bez wykonywania żadnych testów. Musiałem edytować krok „Zaawansowane opcje wykonywania” -> „Inne opcje konsoli”, aby uwzględnić:
(To pole zawiera również
/platform:x64
)źródło
Wystąpił ten błąd, ponieważ moja klasa testów jednostkowych nie była publiczna.
Dawny:
class ClientTests
Błąd w danych wyjściowych:
...\bin\Debug\Tests.dll] UTA001: TestClass attribute defined on non-public class ClientTests
Korekta:
public class ClientTests
źródło
Wyrzucę moje rozwiązanie na stos. W moim przypadku dodaję kilka projektów do istniejącego rozwiązania wraz z projektami testowymi dla nich. Używamy MSTest. W rozwiązaniu, które powodowało problemy ze zgodnością, włączono poprzedni plik UnitTest.testsettings.
Kliknięcie pliku ustawień usunęło sprawdzenie, a uruchomienie testowe zakończyło się pomyślnie dla moich testów.
źródło
Znalazł sposób! Chyba nie najbardziej ortodoksyjny, ale pomógł mi w pośpiechu:
Nie sądzę, aby była to cokolwiek szczególnego w tej wersji, ale jej aktualizacja z pewnością usuwa wszelkie odniesienia, które są złe w rozwiązaniu / projekcie.
źródło
Używam MSTest.
Zainstalowałem z Nuget najnowszą wersję MSTest.TestFramework i zastąpiłem OOB Usuń odniesienia do Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll
Następnie zainstalowano z Neget najnowszą wersję Microsoft.TestPlatform
Pozwoliło mi to uruchomić test poleceniem:
Ale mam ten sam błąd. Główna przyczyna błędu polegająca na tym, że nie określiłem adaptera testowego, który analizuje zestaw i znajduje testy.
Rozwiązanie:
Zainstaluj pakiet NuGet „MSTest.TestAdapter”
Określ adapter testowy na końcu polecenia:
/TestAdapterPath:".\packages\MSTest.TestAdapter.2.1.2\build_common "
źródło
To tylko podsumowanie rozwiązania przedstawionego wcześniej przez @Sushil.
Jest to znany problem występujący w Team Foundation Server 2015 RTM + Update 1 i zostanie rozwiązany w aktualizacji 2, odniesienie .
Jest obejście opisane przez @Sushil tutaj , które obejmuje dodanie pliku .runsettings, który wymusza uruchomienie testera na starszym frameworku .Net (proszę nie musieć go określać w oknie dialogowym "Dodaj / Edytuj przebieg testu" jako dodanie w edytorze procesu budowania zostaną zignorowane).
źródło
W Visual Studio 2017 po prostu odinstalowuję i ponownie instaluję NUnitTestAdapter lub instaluję nowy pakiet, taki jak pakiet NUnitTestAdapter.WithFramework i problem zniknął.
źródło
Mam ten sam problem. Używam programu Visual Studio 2017 Community Edition.
Wykonałem następujące kroki, aby pomyślnie wykryć wszystkie moje przypadki testowe i pomyślnie je uruchomić:
Najpierw przejdź do Rozszerzenia i aktualizacje, zainstaluj adapter testowy NUnit3. Jeśli już masz, po prostu go włącz.
Uruchom ponownie program Visual Studio 2017, automatycznie wyświetli się monit o
zainstalowanie rozszerzenia. Jeśli pojawi się monit o zakończenie zadania, aby kontynuować
instalację, po prostu kliknij „Zakończ zadanie”.
Następnie odbuduj projekt testowy, a wszystkie przypadki testowe zostaną zidentyfikowane i możesz teraz rozpocząć uruchamianie przypadków testowych.
źródło
W moim przypadku ponowna instalacja adaptera Nunit3, usuwanie folderów tymczasowych, zmiana architektury i nic nie działało. To z powodu Daemon Resharper, który spowodował problem.
To rozwiązuje problemy.
źródło
Ten błąd może wystąpić w przypadku testów asynchronicznych, jeśli masz nieprawidłowy typ zwrotu. Typ zwracany powinien mieć wartość Task, a nie void.
źródło
Po dodaniu TestAdapterPath w Commander, to zadziałało:
źródło
W moim przypadku testy zostały wykryte, ale ich uruchomienie zakończyło się komunikatem „Test niedostępny ... ” i (nie) sławny: „Upewnij się, że wykrywacz testów i programy wykonawcze są zarejestrowane, a ustawienia wersji platformy i frameworka są odpowiednie i spróbuj ponownie”.
błąd był niezależny od programu Visual Studio (testowany z narzędzi dotnet CLI i prawie nagiego testu UNit) i występował tylko w przypadku platformy .NET 4.7.1. Aplikacja dotnetcore działa dobrze.
również uruchomienie testów z Nuint3 CLI
nunit3-console.exe Tests.csproj
pokazuje błąd:„Albo zespół nie zawiera testów, albo nie znaleziono odpowiedniego sterownika testowego”.
błąd wynikał z tego, że adapter testowy nie mógł zostać znaleziony na (zmapowanym) dysku sieciowym lub udziale i został rozwiązany przez skopiowanie go lokalnie i ponowne uruchomienie.
źródło
Spróbuj uruchomić
vstest.console.exe
z--diag:diag.txt
i sprawdzić wyjście. Dla mnie były to błędy ładowania DLL dla adapterów testowych z mojego katalogu roboczego: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.
Pracowałem wokół to poprzez dodanie
<loadFromRemoteSources enabled="true"/>
mocy<runtime>
w vstest.console.exe.configźródło
Napotkałem podobny problem, gdy wypróbowałem nUnit w VS 2017 i nie jest to główny projekt. Instalacja
NUnit3TestAdapter
rozwiązała problem.źródło
Rozwiązałem ten problem, instalując NUnit3TestAdapter NuGet w moim projekcie ( https://www.nuget.org/packages/NUnit3TestAdapter/ ).
Mój plik .csproj
źródło
To pytanie jest oczywiście zadawane przez osoby z różnymi scenariuszami, moja odpowiedź obejmie uruchamianie testów XUnit w projekcie .NET Core przy użyciu potoku kompilacji w Azure DevOps, ale może też pomóc innym.
otherConsoleOptions: '/framework:.NETCoreApp,Version=v3.1'
doinputs
swojegoVSTest@2
etapu (z numerem wersji zestawu do dowolnej wersji .NET Rdzenia używasz). Więcej informacji można znaleźć w tej dokumentacji .failOnMinTestsNotRun: true
aby potok kompilacji zgłosił błąd, jeśli zostaną uruchomione testy zerowe.The library 'hostpolicy.dll' required to execute the application was not found
. Możesz rozwiązać ten problem, zmieniając filtr z domyślnego**\*test*.dll
na**\*test.dll
(zwróć uwagę na usuniętą gwiazdkę) lub inny wzorzec, który będzie pasował do biblioteki DLL projektu testowego. Powodem tego jest to, że XUnit umieszcza plik o nazwietesthost.dll
w katalogu wyjściowym, jak wyjaśniono w tym wydaniu na githubie .Jeśli używasz starszych potoków, które nie używają yaml, powinny być dostępne te same opcje. Ta odpowiedź obejmuje dodanie frameworka, zakładam, że będzie również opcja „Zaliczenie zadania, jeśli minimalna liczba testów nie zostanie uruchomiona” lub coś podobnego.
źródło