Mam proste rozwiązanie w Visual Studio 2013, które składa się z jednego projektu internetowego, jednego projektu biblioteki i jednego projektu testu jednostkowego. Kiedy otwieram rozwiązanie i próbuję uruchomić testy jednostkowe, nie są one odkrywane przez Visual Studio. Aby uruchomić testy, staram się wejść do menu i wybrać Test -> Uruchom -> Uruchom wszystkie testy lub otwierając okno eksploratora testów. W ten sposób Visual Studio nie znajduje żadnych testów w rozwiązaniu.
Tworząc najpierw prosty projekt testów jednostkowych i próbując uruchomić test, Visual Studio wie, że odkryję test i mogę go uruchomić. Następnie, jeśli otworzę moje poprzednie rozwiązanie, Visual Studio odkryje teraz wszystkie testy. Próbuję zapisać swoje rozwiązanie, ale zamykając je i otwierając ponownie, bez tworzenia projektu testów jednostkowych, studio wizualne nie znajduje ponownie testów. To bardzo dziwne zachowanie, którego nie wiem, dlaczego tak się dzieje.
Kiedyś pracowałem sam w tym projekcie, w którym korzystałem z narzędzia kontroli źródła zintegrowanego z podstawą zespołu Visual Studio. Problem polegający na tym, że Visual Studio nie wykrywa testów jednostkowych zaczyna się, gdy do projektu pojawił się nowy element i kiedy muszę odtworzyć rozwiązanie za pomocą kontroli źródła online. Wcześniej wszystkie testy zawsze były odkrywane przez studio wizualne.
Do tworzenia testów jednostkowych używam biblioteki DLL Microsoft.VisualStudio.QualityTools.UnitTestFramework. Moja wersja programu Visual Studio to: Microsoft Visual Studio Express 2013 dla sieci Web w wersji 12.0.30723.00 Aktualizacja 3. Moja wersja .NET Framework to 4.5.50938.
Wszystkie moje testy wyglądają tak:
[TestClass]
public class Service1Test
{
[TestMethod]
public void Test1()
{
Assert.IsTrue(True);
}
}
źródło
Odpowiedzi:
Zauważyłem, że muszę od czasu do czasu zrobić, aby testy pokazały się prawidłowo.
Jeśli twoje rozwiązanie znajduje się na chronionym dysku, do którego potrzebujesz dostępu administratora do odczytu / zapisu, czasami pojawia się tylko część testów. W takim przypadku zdecydowanie uruchom VS jako administrator.
Jeśli Twoje rozwiązanie jest 64-bitowe, upewnij się, że Test> Ustawienia testowe> Domyślna architektura procesora jest ustawiona na x64. Czasami jest ustawiony na x86. Ustaw go na x64, a następnie odbuduj.
Czasami po prostu ponowne uruchomienie programu Visual Studio załatwia sprawę, ponieważ eksplorator testów uruchomi się ponownie.
Nie zapomnij o stworzeniu projektu / rozwiązania testowego. (Jeśli chcesz, aby został zbudowany z pozostałymi projektami, kliknij prawym przyciskiem myszy rozwiązanie> Właściwości> Właściwości konfiguracji> Konfiguracja> zaznacz pole „Kompiluj” dla projektu testowego)
Upewnij się, że testy znajdują się w
public
sekcji Twojej klasy testowejźródło
Jeśli korzystasz z NUnit, najpierw pobierz NUnit Adapter.
Idź do Narzędzia → Rozszerzenia i aktualizacje… → Online → wyszukaj „NUnit Test Adapter”.
źródło
Upewnij się, że klasa testowa jest
public
taka, aby można ją było znaleźć. A jeśli odwołujesz się do innej klasy, upewnij się, że jest to samo.Ponadto, czasami, jeśli nie masz żadnych potwierdzeń lub nie ozdabiasz testu znakiem
[TestMethod]
, test może nie zostać rozpoznany.Jeszcze 2 rzeczy: 1) Asynchroniczne testy jednostkowe działają w najlepszym przypadku zabawnie, aw najgorszym - żadnych. Spójrz na ten artykuł autorstwa Stephena Cleary'ego i zachować stamtąd jeśli Cię interesuje.
2) Jeśli używasz NUnit i napotkasz te same problemy, pamiętaj, że jest to
[TestCase]
dla Nunit, a nie[TestMethod]
Powiedziawszy powyższe, oto artykuł , który opublikowałem na temat projektu kodu, z oboma
MSTest
&NUnit
, na wypadek, gdybyś chciał go podkręcić i upewnić się, że niczego nie brakuje.źródło
using Microsoft.VisualStudio.TestTools.UnitTesting;
Miałem ten sam problem, ale żadne z innych rozwiązań nie działało. Okazuje się, że korzystałem z frameworka NUnit 3 z adapterem 2.
Jeśli używasz NUnit 3, przejdź do Rozszerzenia i aktualizacje i zainstaluj adapter testowy NUnit3.
źródło
Od czasu do czasu mam ten problem. U mnie działa zamknięcie programu Visual Studio i przejście do folderu:
i usuń jego zawartość.
Po otwarciu programu Visual Studio i ponownym załadowaniu projektu Eksplorator testów powinien zawierać Twoje testy
źródło
%LocalAppData%\Microsoft\VisualStudio\16.0_03b7a93c\ComponentModelCache
Użytkownicy XUnit mogą zauważyć, że okno Eksploratora testów nie wyświetla już żadnych testów. Aby umożliwić ponowne wykrycie testów, wypróbuj tę ważną wskazówkę , wyróżnioną poniżej.
źródło
Dla przyszłych pracowników Google miałem rzadki scenariusz, który to spowodował.
W mojej podstawowej klasie testowej miałem właściwość o nazwie TestContext. To kolidowało z zarezerwowaną właściwością TestContext MSTest, powodując, że wszystkie moje testy są ukryte przed VS / Resharper z wyjątkiem jednego (który nie dziedzicza z bazy).
źródło
public
.dla mnie była to zmiana „konfiguracji rozwiązania” na Debugowanie (zamiast Release).
źródło
Mój problem polegał na tym, że moja metoda testu jednostkowego nie była nieważna i otrzymywała parametry.
źródło
Zauważyłem, że metody testów jednostkowych oznaczone jako
async void
nie są wykrywane przez VS Test Explorer. Wydaje się, że dzieje się tak, ponieważ VS nie miałby możliwości czekać na zakończenie testu i zdecydować, czy się powiódł, czy nie. Jeśli absolutnie potrzebujesz metody testowej do działania asynchronicznego, zamiast tego spraw, aby zwracała Task, na przykładasync Task
. Okazało się, że to rozwiązało problem.źródło
Spróbuj skompilować wszystkie projekty jako MSIL (dowolny procesor) zamiast x86 / x64. Dziwnie mi zadziałało
źródło
Chociaż rozwiązanie AndyG działa, bardziej trwałym rozwiązaniem mogłoby być ustawienie zmiennej środowiskowej PreferredToolArchitecture na „x64”, albo przez:
Jak sprawić, by program Visual Studio używał natywnego łańcucha narzędzi amd64
lub przez:
źródło
Miałem ten sam problem i ponownie przypomniałem sobie (taka sytuacja miała miejsce wcześniej), że wybranie opcji „Platforma mieszana” w menu platformy rozwiązań działa, tak samo jak inne odpowiedzi.
źródło
Udało mi się dodać moje jako
zaczął działać, gdy usunąłem statyczne ...
źródło
Przejdź do menedżera pakietów Nuget i pobierz adapter Nunit w następujący sposób.
źródło
przejdź do menu projektu> Configuration Manager, sprawdź, czy platforma projektu testowego jest zgodna z resztą projektu i czy chcesz skompilować, a następnie odbudować.
źródło
Po prostu wpadłem na to i nie widziałem podobnego przypadku, który byłby podobny do mojego.
W
.csproj
pliku mojego projektu testowego prywatność odniesienia NUnit została ustawiona naFalse
:Po tym, jak się
<Private>
doTrue
tego zabrałem , zadziałało.źródło
Wystarczy zainstalować tylko ten pakiet:
NUnit TestAdapter
źródło
Aby testy były wyświetlane w oknie Eksploratora testów, musiałem zainstalować NUnit3 Test Adapter 3.0, który nie był dostępny w Menedżerze pakietów.
Pobrano z https://visualstudiogallery.msdn.microsoft.com/0da0f6bd-9bb6-4ae3-87a8-537788622f2d
źródło
Miałem dokładnie ten sam problem.
Było to spowodowane niekompatybilną wersją NUnit, którą dodałem do mojego projektu (3.2.0) i zainstalowanym adapterem testowym (2.0.0).
Aby to naprawić, użyj opcji „Narzędzia> Rozszerzenia i aktualizacje” i wyszukaj NUnit3 Test Adapter, po czym wykrył moje testy.
Twoje zdrowie
źródło
Powiedzmy tylko dla argumentacji, że musisz użyć architektury X64 w swoim projekcie testowym, aby zależności zostały poprawnie zbudowane (jak w moim przypadku). Może być konieczne zmodyfikowanie domyślnej architektury procesora w menu Test - Ustawienia testu . Ustawienie tego na X64 pozwoliło mojemu eksploratorowi testów znaleźć moje testy przy użyciu Microsoft.VisualStudio.TestTools.UnitTesting.
źródło
Przepraszam za dodanie do długiej listy, ale miałem zupełnie inny problem. Najpierw chciałbym wspomnieć, że odkryłem swój problem po kliknięciu przycisku „Uruchom wszystko” w Eksploratorze testów, a następnie obejrzeniu okna danych wyjściowych kompilacji w programie Visual Studio. Musisz go aktywnie obserwować, bo potem komunikat znika.
Jeśli chodzi o problem, wygląda na to, że podczas skanowania testów ładowana jest biblioteka DLL, a jej typy testów są wyliczane. Powoduje to załadowanie odwołań i jeśli podczas tego procesu wystąpi jakakolwiek awaria, testy nie zostaną pokazane w eksploratorze. Wystąpiły dwa problemy uniemożliwiające pomyślne załadowanie testowej biblioteki DLL:
źródło
Jeśli załadujesz rozwiązanie Visual Studio (w moim przypadku VS 2015 Community) z udziału sieciowego lub katalogu Moje dokumenty, który jest częścią udziału , wpadniesz w ten problem. Rozwiązałem to, przenosząc rozwiązanie i związane z nim projekty do folderu lokalnego.
źródło
Po spędzeniu 2 dni ... żadna z powyższych nie zadziałała. Jedynym „rozwiązaniem” było: Przejdź do właściwości projektu -> zakładka Build. Następnie kliknij przycisk Zaawansowane w prawym dolnym rogu panelu. Zmień „Informacje debugowania:” na „pełne” i kliknij OK.
Oto zrzuty ekranu:
źródło
Natknąłem się na ten sam problem. Zbadano i stwierdzono, że biblioteki dll nie zostały skompilowane i umieszczone we właściwym folderze. jak tylko zmieniłem konfigurację, pojawiły się. - opcje budowania projektów, jakiego folderu należy użyć? - konfigurację budowania w menu budowania, należy je sprawdzić.
to naprawiło to dla mnie.
źródło
For the Visual Studio 2013.5, clearing the \TestResults directory in the solution helped. Visual Studio corrupted the mdf file in which it stores the discovered tests, thus preventing the discovery of unit tests.
źródło
Be sure your all projects are runing with the same configuration. Under your project's Properties => Debug => Platform in drop down list choose the appropriate platform (for me it was "Any CPU") as determined at your other projects.
źródło
źródło
Had the same issue; tests suddenly stopped being discovered.
Nunit Test Adapter had become disabled somehow. Clicking enable in the extension manager fixed it for me.
źródło
I had the same problem until I realized I made a cut/paste error and left off
[Test Method]
before the test.źródło