Obecnie pracuję nad rozwiązaniem, które ma obecnie 32 Unittesty. Pracowałem z biegaczem testowym resharper - co działa dobrze. Wszystkie testy są uruchomione, wszystkie pokazują prawidłowe wyniki.
Jednak testy nie są uruchamiane podczas korzystania z eksploratora testów programu Visual Studio.
Eksplorator testów pokazuje wszystkie testy jednostkowe, ale po kliknięciu „Uruchom wszystko” wszystkie testy stają się wyszarzone i nie pokazują żadnego wyniku testu:
- Wszystkie klasy testowe są publiczne
- Wszystkie klasy testowe mają
[TestClass]
zadeklarowany atrybut - Wszystkie metody testowe używają
[TestMethod]
atrybutu - Zarówno kod produktywności, jak i projekty testowe są przeznaczone dla platformy .NET 3.5.
- Próbowałem już do czystej kompilacji moje rozwiązania i / lub usunąć wszystkie
obj
,bin
,Debug
iRelease
foldery
Byłbym wdzięczny za wszelkie wskazówki, które wyjaśniałyby to zachowanie.
visual-studio
unit-testing
visual-studio-2012
resharper
ElGauchooo
źródło
źródło
Odpowiedzi:
Jeśli twoje projekty to nie wszystkie AnyCpu, możesz również sprawdzić, czy następujące 2 ustawienia są zgodne:
[Projekt testowy kliknij prawym przyciskiem myszy] -> właściwości -> Kompilacja -> Cel platformy - np. X64
[Menu główne] -> Test -> Ustawienia testu -> Domyślna architektura procesora -> X64
Zauważyłem, że gdy te nie pasowały, mój projekt testowy po cichu nie działał.
źródło
Miałem ten sam problem w VS 2017. W moim przypadku został on rozwiązany poprzez ponowne uruchomienie VS.
źródło
Jeśli używasz NUnit zamiast MSTest, będziesz potrzebować rozszerzenia NUnit Test Adapter dla programu Visual Studio 2012/2013.
źródło
Musiałem zmienić moje metody testowe asynchroniczne, aby zwrócić Task zamiast void.
Testy były następnie aktywne i możliwe do uruchomienia w Eksploratorze testów.
źródło
async void Foo()
a ich analizatorzy nie narzekali, ale z pewnością mogliby dodać taki, który by to zrobił. cc: @bradwilsonasync void
.Sprawdź, w jakim frameworku testy są napisane (np. Nunit, xunit, VS test itp.) I upewnij się, że masz zainstalowany odpowiedni adapter testowy / rozszerzenie runner.
Dla mnie był to adapter testowy NUnit 3, którego brakowało i potwierdziłem numer wersji wymaganej, patrząc na wersję zależności nunit.framework (wybierz plik .dll w drzewie zależności w Eksploratorze rozwiązań i naciśnij klawisz F4, aby wyświetlić okno Właściwości).
źródło
Microsoft.VisualStudio.QualityTools.UnitTestFramework
(nie wiem, która wersja). Rozwiązano problemy polegające na tym, że metoda nie działa (lub nie została znaleziona), usuwając ten odnośnik i instalując najnowszy (v2.1.0) MSTest.TestAdapter (i Framework)Microsoft.VisualStudio.TestTools.UnitTesting
przestarzałe? Miałem kilka testów używających tego, które nagle przestały działać jak powyżej po ponownym dodaniu niektórych odniesień do projektu, od którego zależały.Zauważyłem, że w projekcie nie odwoływał się do zestawu Microsoft.VisualStudio.QualityTools.UnitTestFramework . Zamiast tego odwoływał się do Microsoft.VisualStudio.TestPlatform.TestFramework i Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions . Kiedy usunąłem te dwa odniesienia i dodałem odwołanie do zestawu Microsoft.VisualStudio.QualityTools.UnitTestFramework , testy, które wcześniej były oznaczone niebieskim wykrzyknikiem, nagle stały się aktywne i zaczęły działać.
źródło
Walczyłem z tym przez półtora dnia. więc oto co zrobiłem, aby to rozwiązać:
Objawy
Dochodzenie
Ponieważ wszystkie pakiety zostały zaktualizowane podczas aktualizacji frameworka .net, zacząłem od różnic między działającymi i niedziałającymi projektami. Pierwszą wskazówką było to, że wszystkie 3 projekty używały: MSTest.TestAdapter i MSTest.TestFramework
Oczywiście poszedłem do -> Konsola wyjściowa -> menu Test w VS 2019 i spojrzałem na wyjście. Nie ma tam nic przydatnego.
Krok pierwszy rozwiązania : Zaktualizuj MSTest.TestAdapter i MSTest.TestFramework do wersji 2.0.0
Krok drugi rozwiązania : Teraz konsola wyjściowa -> menu rozwijane Test zaczęło wyświetlać jeden po drugim, brakujące pakiety i nieprawidłowe przekierowania powiązań
Krok trzeci rozwiązania : ręcznie dodaj brakujące pakiety. Dla mnie to były
Krok 4 rozwiązania : Usunięto / naprawiono niepotrzebne przekierowania wiązań.
Mam nadzieję, że to pomoże komuś innemu.
źródło
ToolsVersion
i wbijając w moje wszystko zepsuło wszystko. Wszystko, co mogę powiedzieć, to "uwaga kupujących" na testy jednostkowe MS i być gotowym do zastąpienia plików * .csproj w jednej chwili, te rzeczy są ściśle zintegrowane i zależne od wersji.Clean-Rebuild
rozwiązanie zadziałało dla mnie.źródło
Miałem ten problem i był on spowodowany posiadaniem wielu projektów testowych z różnymi wersjami:
Skonsolidowanie pakietów NuGet dla projektów, aby były takie same, rozwiązało problem.
źródło
Wystąpił ten sam problem po czystej instalacji VS 2019. Testy zostały znalezione, ale nie zostały uruchomione z komunikatem „Wystąpił nieoczekiwany błąd”. Naprawiono przez skonfigurowanie x64 zamiast x86, który był wybrany domyślnie.
źródło
W moim przypadku było tak, ponieważ jeden projekt testowy w moim rozwiązaniu miał zainstalowane pakiety nuget MSTest.TestFramework i MSTest.TestAdapter, ale inne nie. Pakiety te najwyraźniej nie były wymagane do uruchamiania testów, dopóki jeden projekt w rozwiązaniu ich nie zainstalował.
Problem został rozwiązany przez zainstalowanie tych pakietów w projektach testowych, w których ich brakowało.
źródło
Rozwiązaniem tego problemu była aktualizacja pakietów nuget MS.Test
źródło
Zainstaluj
Nunit3TestAdapter
Nuget rozwiązał ten problemźródło
Możesz wyświetlić wyjście błędu swojego programu uruchamiającego testy, otwierając panel Wyjście (widok -> wyjście) i wybierając „testy” z menu „Pokaż wynik z”
Dodatkowo, jeśli masz zainstalowany Resharper , możesz otworzyć plik testowy i najechać kursorem na kółko testowe obok testu, aby uzyskać dodatkowe informacje o błędzie
Kliknięcie spowoduje wyświetlenie okna z bardziej szczegółowymi informacjami. Alternatywnie możesz otworzyć to okno, przechodząc do Extensions -> Reshaper -> Windows -> Unit Test Exploration Results
źródło
Ustawienie architektury procesora dla projektów AnyCPU w Eksploratorze testów rozwiązało mój problem! Zobacz zrzut ekranu powyżej.
źródło
W moim przypadku miałem
async void
metodę i zastąpiłem jąasync Task
, więc test przebiegł zgodnie z oczekiwaniami:zamienić :
źródło
Miałem te same objawy.
Upewnij się, że masz zainstalowane odpowiednie rozszerzenie programu Visual Studio za pośrednictwem narzędzi - rozszerzenia i aktualizacje. W moim przypadku musiałem zainstalować XUnit i Specflow z opcji Online.
Następnie wyczyść roztwór i odbuduj go.
Jeśli to nadal nie pomoże, wyczyść katalog tymczasowy (wyszukaj% temp% w menu Start, wyszukaj i usuń całą zawartość w Temp)
A potem w końcu spróbuj odinstalować Resharper, co ostatecznie rozwiązało mój problem.
źródło
Tutaj projekt testowy nie został oznaczony do zbudowania:
Kompiluj -> Configuration Manager ... -> sprawdź kompilację dla projektu testowego
źródło
Miał te same objawy, w moim przypadku była to wersja zestawu SDK dotnet core, która była przyczyną problemu.
Projekty były ukierunkowane na 2.2 i były w stanie zbudować przy użyciu 3.0. Po zainstalowaniu najnowszej wersji 2.2 SDK można było je uruchomić.
źródło
Miałem nieco inny scenariusz, ale to jest najlepszy wynik Google, więc odpowiem również na mój problem. Mogłem przeprowadzić testy, ale tylko około połowa z nich faktycznie działała, bez żadnych błędów.
W końcu zdebugowałem i przeszedłem przez wszystkie testy, i natknąłem się na wystąpienie
Stack Overflow Error
testowe niektórych modeli.W metodach instancji testowej model potomny tworzył rodzica, a rodzic tworzył dziecko, które tworzyło nieskończoną pętlę. Usunąłem kreację rodzica z dziecka i teraz wszystkie moje testy działają!
źródło
Ponieważ dostałem się tutaj z tego rodzaju błędem, zamieszczam mój problem / rozwiązanie:
Objawy:
Problem:
Wystąpił błąd w kodzie, który zgłosił wyjątek w innym wątku. Wszystkie potwierdzenia testu przeszły, ale spowodowało to anulowanie wykonania testu. Widziałem błąd w „Wynikach testów” (NullException).
źródło
Miałem inną wersję pakietów nuget NUnit (3.11.0) i NunitTestAdapter (3.12.0). Kiedy zaktualizowałem NUnit do wersji 3.12.0, Visual Studio przeprowadził testy.
źródło
Ten problem jest również obserwowany, gdy uruchamiana metoda testowa zgłasza StackOverflowException , powodując, że moduł uruchamiający testy przerywa przebieg testu, w wyniku czego dane wyjściowe
0 tests run
.Aby znaleźć winowajcę i go rozwiązać, umieść punkt przerwania na początku obu metod dekorowanych TestInitialize i TestMethod , uruchom test jednostkowy w trybie debugowania, kontynuuj przechodzenie przez (F10), aż zostanie zgłoszony wyjątek.
źródło
Wypróbowałem wiele opcji w programie Visual Studio 2019 w wersji 16.4.6 i
Microsoft.VisualStudio.TestTools.UnitTesting
, ale na razie jedynym sposobem pomyślnego uruchomienia testów było wywołanie następnego polecenia w konsoliTesty są wykrywane w Eksploratorze testów, ale ich wynikiem jest „Nie uruchomione”.
Aktualizacja programu Visual Studio nie pomogła.
Rozwiązaliśmy problem z „Żaden test nie pasuje do podanego filtru przypadków testowych FullyQualifiedName”, uruchamiając aktualizacje do najnowszej wersji dla następnych pakietów:
źródło
Odpowiedzi na to pytanie jest już sporo, ale miałem inny scenariusz i rozwiązanie.
Przenieśliśmy funkcjonalność testowanego typu z jednej klasy do nowej i w związku z tym stworzyliśmy nową klasę testową, w której stara klasa testowa była pusta.
Oryginał:
Złamany:
Naprawiony:
Stara klasa testowa(usunięta)Wyczyść projekt, zamknij program Visual Studio, usuń folder TestResults, a następnie uruchom ponownie VS, a następnie ponownie skompiluj projekt. (Samo to może rozwiązać twój problem, ale dla mnie nie wystarczyło, dopóki nie usunięto starej klasy testowej).
źródło
Miałem inne rozwiązanie, aby uruchomić testy. Mój globalny folder pakietów nie pasuje do tego, co było w moim .csproj. Tak wyglądał mój plik .csproj:
Musiałem zmienić moją wersję na 16.5.0, którą znalazłem, zainstalowaną w moim folderze pakietów globalnych. Teraz moje testy są w stanie uruchomić:
źródło
Dla mnie rozwiązaniem była zmiana ustawień Resharper Unit Testing „Domyślna architektura platformy” na „x64”
źródło
U mnie ponowne uruchomienie VS2017 nie zadziałało. Musiałem wyczyścić sln, a następnie znalazłem plik z testami, które nie działały i uruchomiłem tylko ten plik. Potem uruchomiłem wszystko i znowu działało normalnie.
źródło
Sprawdź plik projektu pod kątem odniesień do NUnit w różnych wersjach:
W moim przypadku zainstalowałem wersję
3.11.0
zarówno NUnit, jak i NUnit3TestAdapter , ale2.6.4
w pliku projektu były stare odniesienia do wersji , które nie zostały usunięte podczas nowej instalacji.Rozwiązanie (zalecane w celu rozwiązania problemów z odwołaniami, zobacz dokumentację ):
Zainstaluj ponownie,NUnit
aNUnit3TestAdapter
to naprawiło odwołania w moim projekcie.Rozwiązanie 2 (w przypadku ponownej instalacji nie naprawiono odniesień):
Odinstaluj i zainstalujNUnit
iNUnit3TestAdapter
.źródło
W moim przypadku udało się zaktualizować pakiety nuget MSTest. Mogło odtworzyć ten problem nawet w przypadku pustego projektu MSTest i aktualizacja pakietów działała.
źródło