Mam kilka testów, które używają wbudowanego Microsoft.VisualStudio.TestTools.UnitTesting
, ale nie mogę ich uruchomić.
Używam Visual Studio 2012 Ultimate.
Mam rozwiązanie dwóch projektów; Jeden ma testów using Microsoft.VisualStudio.TestTools.UnitTesting
, [TestClass]
przed klasą, [TestMethod]
zanim metody badań i odniesienia Microsoft.VisualStudio.QualityTools.UnitTestFramework
(wersja 10.0.0.0, Runtime wersja v2.0.50727). Próbowałem frameworka dot-net 3.5, 4 i 4.5, inne powodują błąd w ponownym kierowaniu.
Próbowałem zbudować rozwiązanie i projekt. Eksplorator testów ma komunikat „Zbuduj swoje rozwiązanie, aby odkryć wszystkie dostępne testy. Kliknij „uruchom wszystko”, aby zbudować, odkryć i uruchomić wszystkie testy w swoim rozwiązaniu.
Pytanie brzmi: jak zdobyć studio wizualne, aby znaleźć testy?
Próbowałem także postępować zgodnie z tym: http://msdn.microsoft.com/en-US/library/ms379625%28v=VS.80%29.aspx, ale bez powodzenia: utknąłem w sekcji rozpoczynającej pracę, kiedy zostałem poproszony kliknij prawym przyciskiem myszy i wybierz create tests
. Nie ma create tests
.
Mam ten test (kompiluje się, ale nie pojawia się w eksploratorze testów):
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace tests {
[TestClass]
public class SimpleTest {
[TestMethod]
public void Test() {
Assert.AreEqual("a","a", "same");
}
}
}
Odkryłem (patrz usunięta odpowiedź poniżej), że dzieje się tak, ponieważ znajduje się on na dysku udostępnionym, ale nie wiem jeszcze, jak go obejść. (może coś o ustawieniach zabezpieczeń).
źródło
Odpowiedzi:
Miałem te same objawy, ale w różnych okolicznościach.
Musiałem dodać jeszcze jeden krok do rozwiązania Petera Lamberga - Oczyść swoje rozwiązanie / projekt.
Mój najtrudniejszy projekt dotyczy x64. Kiedy tworzyłem projekt, pierwotnie był ukierunkowany na x86.
Po przejściu na x64 wszystkie moje testy jednostkowe zniknęły.
Musiałem przejść do menu testowego -> Ustawienia testowe - Architektura domyślnego procesora -> x64.
Nadal się nie pojawili.
Zrobiłem kompilację.
Nadal się nie pojawiłem.
W końcu zrobiłem Clean
Potem się pojawili.
Uważam, że Clean Solution i Clean są bardzo przydatne w uzyskiwaniu rozwiązań do gry w piłkę po zmianie ustawień. Czasami muszę iść do skrajności i usuwać
obj
orazbin
katalogi i zrobić odbudować.źródło
Dodaj słowo kluczowe public do definicji klasy. Twoja klasa testowa jest obecnie niewidoczna poza własnym zestawem.
źródło
[TestMethod]
bycie statycznym z powodu kopiowania i wklejania innego kodu.[TestMethod]
są statyczne, ponieważ to właśnieUserTest1.cs
miało miejsce w nowym projekcie testowym! Rozwiązałem również mój problem.static
swojej metody. Nie wiem, dlaczego tak często to robię z przyzwyczajenia.To czasem działa.
Sprawdź, czy architektura procesora w menu Test jest zgodna z architekturą użytą do zbudowania rozwiązania.
Test -> Ustawienia testu -> Domyślna architektura procesorów -> x86 / x64
Jak wspomniano w innych postach, upewnij się, że masz otwarte okno Eksploratora testów. Test -> Windows -> Eksplorator testów
Następnie przebudowanie projektu za pomocą testów powinno sprawić, że testy pojawią się w Eksploratorze testów.
Edycja: Jak wskazała Ourjamie poniżej, pomocne może być wykonanie czystej budowy. Oprócz tego oto jeszcze jedna rzecz, z którą się spotkałem:
Pole wyboru „Kompilacja” zostało odznaczone w programie Configuration Manager dla nowego projektu testowego, który utworzyłem w ramach rozwiązania.
Przejdź do Kompilacja -> Menedżer konfiguracji. Upewnij się, że projekt testowy ma zaznaczone pole wyboru dla wszystkich konfiguracji rozwiązań i platform rozwiązań.
źródło
Mam Visual Studio 2012 i nie widziałem Testów w Eksploratorze testów,
Zainstalowałem więc: NUnit Test Adapter
To naprawiło problem dla mnie!
źródło
Install-Package NUnitTestAdapter
W moim ostatnim doświadczeniu wszystkie powyższe nie działały. Moja metoda testowa
nie pojawił się, ale dobrze się kompilował. Po usunięciu
async
słowa kluczowego test pojawił się w Eksploratorze testów. To dlatego, żeasync void
jest to metoda „ognia i zapomnienia”. Wybierz metodę,async Task
a otrzymasz zwrot testu!Ponadto brak ustawienia konfiguracji projektu testowego na „Kompiluj” również uniemożliwi wyświetlanie testów. Menedżer konfiguracji> Sprawdź test, aby zbudować.
źródło
Ponieważ projekt znajduje się na dysku wspólnym, jak wskazał oryginalny plakat. VS.NET musi zaufać lokalizacji sieciowej, zanim załaduje i uruchomi zestawy testowe.Przeczytaj ten post na blogu .
Aby VS.NET mógł ładować elementy udziału sieciowego, należy je dodać (udziały) do zaufanych lokalizacji. Aby dodać lokalizację do pełnej listy zaufania (oczywiście zmień zgodnie z wymaganiami środowiska):
Aby zweryfikować lub wyświetlić listę istniejących zaufanych lokalizacji, uruchom:
źródło
CasPol.exe
można znaleźć pod%windir%\Microsoft.NET\Framework[64]\[version]
. Sprawdź, czy ustawiasz zasady dla właściwej architektury. Źródło: msdn.microsoft.com/en-us/library/cb6t8dtz%28v=vs.100%29.aspxZnalazłem problem polegający na tym, że testy nie zostały znalezione w Eksploratorze testów (nic się nie pokazuje), jeśli rozwiązanie działa z dysku sieciowego / lokalizacji sieciowej / dysku udostępnionego
Możesz to naprawić, dodając zmienną środowiskową.
COMPLUS_LoadFromRemoteSources i ustaw jego wartość na 1
źródło
Miałem ten sam problem .. W moim przypadku było to spowodowane własnością prywatną
TestContext
.Zmiana na następującą pomogła:
Po oczyszczeniu i zbudowaniu rozwiązania (zgodnie z opisem w odpowiedzi @Ourjamie) metody testowe w klasie testowej, której dotyczy problem, były dostępne w Eksploratorze testów.
źródło
Napotkałem ten sam problem podczas próby otwarcia rozwiązania na udziale sieciowym. W tym przypadku Eksplorator testów nie wykryłby żadnego testu jednostkowego. Rozwiązaniem okazuje się:
Panel sterowania -> Opcje internetowe -> karta „Zabezpieczenia” -> Kliknij „Intranet” i dodaj adres IP serwera lub nazwę hosta utrzymującego udział sieciowy do listy „Witryny”.
Po wykonaniu tego ponownie skompilowałem rozwiązanie i teraz pojawiły się testy. Powinno to być dość podobne do odpowiedzi udzielonej przez @BigT.
źródło
Szybka lista kontrolna do rozwiązywania niektórych typowych problemów testowych. Upewnić się, że:
public
[TestClass]
atrybut[TestMethod]
atrybutJeśli to nie pomoże, spróbuj wyczyścić, odbudować rozwiązanie i ponownie uruchomić program Visual Studio.
źródło
UTA001: TestClass attribute defined on non-public class
Wystąpił błąd:
"Failed to initialize client proxy: could not connect to vstest.discoveryengine.exe."
Spróbuj uruchomić program Visual Studio jako administrator. To działało dla mnie.
Jest inny post przepełnienia stosu omawiający ten błąd , i to samo rozwiązanie dla nich działa. Pozostaje pytanie, dlaczego to działa.
źródło
Czasami dostaję te same objawy.
Zrobiłem to:
1. Zamknąłem okno Eksploratora testów
2. Oczyściłem rozwiązanie
3. Przebuduj rozwiązanie
4. Uruchomiłem ponownie okno Eksploratora testów z poziomu Test -> Windows -> Test Explorer.
I dostałem swój test w oknie Eksploratora testów.
źródło
Z paska menu na górze ...
Test -> Uruchom -> Wszystkie testy
Możesz także wyświetlić wszystkie testy z Eksploratora testów (Test -> Windows -> Eksplorator testów)
Ponadto w wersji VS 2012, jeśli coś przegapisz, spróbuj przeszukać go za pomocą paska szybkiego uruchamiania w prawym górnym rogu (Ctrl + Q) „Test”
Mam nadzieję że to pomoże.
źródło
Microsoft.VisualStudio.TestTools.UnitTesting
, jakiś pomysł, co jeszcze robię źle?Odkryłem, że najlepszym sposobem na rozwiązanie tego problemu jest utworzenie pliku msbuild .proj i dodanie do tego pliku projektów testów jednostkowych, które według ciebie mają problem, i wykonanie testów przy użyciu wiersza polecenia mstest. W moim pliku app.config znalazłem mały problem z konfiguracją, który pojawił się tylko podczas uruchamiania testów z mstest - w przeciwnym razie projekt testowy byłby w porządku. Znajdziesz także wszelkie pośrednie problemy referencyjne dotyczące tej metody. Po uruchomieniu testu jednostkowego z wiersza poleceń przy użyciu mstest możesz następnie wykonać czyste rozwiązanie, przebudować rozwiązanie, a test powinien zostać poprawnie wykryty.
źródło
W moim przypadku było to coś innego. Zainstalowałem pakiet, a następnie odinstalowałem go i ponownie zainstalowałem wcześniejszą wersję. Pozostało resztkowe
configuration/runtime/asssemblyBinding/dependencyIdentity
przekierowanie w mojej app.config. Musiałem to poprawić. Zrozumiałem to, patrząc naOutput
okno i wybierając „Tests
” z menu rozwijanego. Pojawił się komunikat o błędzie. To był ból ... Mam nadzieję, że to pomaga komuś innemu.źródło
To więcej, aby pomóc ludziom, którzy tu trafią, niż odpowiedzieć na pytanie PO:
Spróbuj zamknąć i ponownie otworzyć studio wizualne, załatwiłem sprawę.
Mam nadzieję, że to komuś pomoże.
źródło
Wiem, że to starsze pytanie, ale w Visual Studio 2015 miałem problemy, w których moja nowo utworzona klasa testowa nie została rozpoznana. Próbowałem wszystkiego. Problem polegał na tym, że klasa nie została „uwzględniona w projekcie”. Znalazłem to tylko po ponownym uruchomieniu programu Visual Studio i zauważyłem, że nie było mojej klasy testowej. Po pokazaniu ukrytych plików, zobaczyłem to, a także inne klasy, które napisałem, nie zostały uwzględnione. Mam nadzieję, że to pomaga
źródło
Ten problem występował wiele razy, gdy próbowałem zbudować rozwiązanie na innym komputerze.
Używam również NUnit i Specflow. Domyślnie Mój projekt testowy jest ukierunkowany na X86, ale muszę to zmienić na X64. Kroki to 1. Menu testowe -> Ustawienia testowe - Architektura domyślnego procesora -> x64. 2. Czysta kompilacja 3. Kompilacja 4. Jeśli nadal nie pojawiły się testy. 5. Przejdź do Narzędzia Rozszerzenia i aktualizacje Następnie zainstaluj biblioteki NUnit i Specflow 6. Czysta kompilacja 7. Kompilacja
Wtedy zwykle test pojawi się w Edytorze testów.
źródło
Zaktualizowałem VS 2012 do najnowszej aktualizacji. tj. aktualizacja studia wizualnego 3. To rozwiązało problem.
źródło
Dla mnie rozwiązanie było nieco mniej skomplikowane.
Właśnie wprowadziłem istniejące rozwiązanie na mój komputer (sklonowane z gitHub) i nie śledzimy automatycznie wygenerowanych plików .cs, które utworzył Visual Studio. (Dla każdego pliku funkcji jest plik .cs o tej samej nazwie)
Otwarcie rozwiązania bez skojarzonych plików .cs faktycznie pozwala mi przejść do powiązanych metod, więc wyglądało to tak, jakby przepływ specyfikacji był prawidłowo podłączony, ale nie byłem w stanie wyświetlić nazw testów w Eksploratorze testów.
W przypadku tego problemu po prostu wykluczenie plików funkcji z projektu, a następnie ich ponowne włączenie, zmusiło VS do zregenerowania tych automatycznie wygenerowanych plików kodu.
Następnie mogłem wyświetlić testy w eksploratorze testów.
źródło
Miałem ten problem podczas aktualizacji mojego rozwiązania z Microsoft Visual Studio 2012 Express for Web do Microsoft Visual Studio 2013.
Stworzyłem projekt testów jednostkowych w 2012 r., A po otwarciu w 2013 r. Projekt testów jednostkowych nie pokazywał żadnych testów w eksploratorze testów. Za każdym razem, gdy próbowałem uruchomić lub debugować testy, nie powiodło się, mówiąc:
Zauważyłem również, że podczas debugowania testów uruchamiał instancję programu Visual Studio 2012. To pozwoliło mi zrozumieć, że projekt testów jednostkowych wciąż odwołuje się do 2012 r. Patrząc na referencje projektu testowego, zdałem sobie sprawę, że był on ukierunkowany na niewłaściwy Microsoft Visual Biblioteka DLL Studio Unit Test Framework dla tej wersji programu Visual Studio:
Zmieniłem numer wersji z 11.0 na 12.0:
Przebudowałem wszystko i to naprawiło problem - wszystkie testy zostały znalezione w Eksploratorze testów, a teraz wszystkie testy zostały znalezione i działają poprawnie.
źródło
Sprawdź, czy w projekcie testowym nie ustawiono opcji Opóźnij znak tylko we właściwościach projektu -> Podpisywanie. Jeśli tak, usuń zaznaczenie i wykonaj czystą przebudowę.
źródło
sn -Vr *,<public key token>
administratora w wierszu polecenia VS programistyUderzyłem ten sam problem podczas próby otwarcia rozwiązania na udziale sieciowym w VS2013 Ultimate.
Rozwiązałem problem, włączając
Panel sterowania -> Opcje internetowe -> karta „Bezpieczeństwo” -> Kliknij „Lokalny intranet”, kliknij witryny i upewnij się, że zaznaczono opcję „Automatycznie wykryj sieć intranetową”.
źródło
To są świetne odpowiedzi, ale jest jeszcze jeden powód, o którym wiem; Właśnie na to wpadłem. W jednym z moich testów miałem komunikat ReSharper wskazujący, że mam nieużywaną prywatną klasę. To była klasa, którą zamierzam wykorzystać w nadchodzącym teście. To faktycznie spowodowało zniknięcie wszystkich moich testów.
źródło
Sprawdź zespoły, do których istnieją odniesienia, pod kątem zespołów, które mogą mieć opcję „Kopiuj lokalnie” na „Fałsz”.
Jeśli projekt testowy jest budowany we własnym folderze (na przykład bin / Debugowanie), a projekt zależy od innego zestawu, a jeden z tych zestawów na liście Odniesienia jest oznaczony jako Kopiuj lokalnie = „False”, zestaw nie może się załadować z powodu brakujących zależności i twoje testy nie zostaną załadowane po kompilacji.
źródło
Wygląda na to, że NUnit Framework 2.6.4 nie działa dobrze z NUnit Test Adapter. W witrynie wspomniano, że adapter testowy będzie działał tylko z NUnit Framework 2.6.3.
To był mój problem: 1. Pobrałem NUnit i NUnit Test Adapter osobno przez Nuget w VS2012. Jakoś NUnit został zaktualizowany do wersji 2.6.4 Nagle nie zobaczyłem moich przypadków testowych na liście.
Naprawić:
Odinstaluj Nuget i adapter Nuget Test
za. Przejdź do Narzędzia> Nuget> Menedżer Nuget Pkg> Zarządzaj Nuget Pkg dla rozwiązania
b. Wyświetl listę zainstalowanych pakietów
do. Kliknij zarządzaj
re. Odznacz swoje projekty
Zainstaluj NUnit Test Adapter, w tym NUnit 2.6.3 Framework
Rozwiązanie Clean / Rebuild
Otwórz Test> Eksplorator testów> Uruchom wszystko
Widzę wszystkie przypadki testowe
Mam nadzieję że to pomoże
źródło
Żadne z tych rozwiązań mi nie pomogło. Testy nie zostałyby wykryte dla jednego rozwiązania, podczas gdy inne rozwiązanie odnoszące się do tych samych projektów działało dobrze. W końcu rozwiązałem ten problem, usuwając plik nazwa_rozwiązania.v12.suo.
źródło
Miałem ten sam problem, ale trochę inny.
Korzystałem z programu Visual Studio 2012. Z jakiegoś powodu uruchomiono tylko testy początkowo wygenerowanego pliku. Ale testy w innym pliku nie były uruchomione. Wypróbowałem różne rozwiązania zamieszczone tutaj, nie działały.
W końcu zorientowałem się, że miałem prywatną metodę w klasie testowej, która była pierwszą metodą w klasie. Właśnie przeniosłem metodę prywatną po metodzie testowej; więc teraz metoda z
[TestMethod]
atrybutem jest pierwsza metodą w klasie. Dziwne, ale teraz działa.Mam nadzieję, że to kiedyś pomoże komuś.
źródło
Testy nie lubią metod asynchronicznych. Na przykład:
Po zrobieniu tego:
To był test.
źródło
[Test] public void XamarinExampleTest() { // This workaround is necessary on Xamarin, // which doesn't support async unit test methods. Task.Run(async () => { // Actual test code here. }).GetAwaiter().GetResult(); }
Dodanie mojej odpowiedzi, ponieważ jest to najlepszy wynik w Google.
Korzystam z programu Visual Studio 2015 i (nieświadomie - właśnie uruchomiłem
Install-Package NUnit
) zainstalowałem pakiet NUnit3 NuGet do mojego projektu testowego. Miałem już zainstalowane rozszerzenie NUnit Test Adapter, a moje testy wciąż się nie wyświetlały.Zainstalowanie adaptera testowego NUnit3 poprzez Narzędzia> Rozszerzenia i aktualizacje naprawiło to dla mnie.
źródło