Dlaczego Visual Studio 2012 nie znajduje moich testów?

221

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ń).

ctrl-alt-delor
źródło
Która wersja VS 2012? Możesz pobrać testera, takiego jak TestDriven.Net lub taki jest w Resharper.
Brett Allred,
Używam Visual Studio 2012 Ultimate.
ctrl-alt-delor
Udostępnij wersję ramową i wersję biblioteki UnitTesting, które dodałeś jako odniesienie
Adil
5
W moim przypadku usunięcie pliku app.config naprawiło eksploratora testów jednostkowych
Chrisa Richnera
4
Spróbuj wyszukać błędy w kategorii „Test” w oknie wyników. Testy funkcjonalne tworzę z kompilacji wydania i kiedy próbuję debugować przy użyciu kompilacji debugowania (której biblioteki DLL znajdują się w innej strukturze folderów), nie otrzymuję żadnych błędów kompilacji, ale muszę sprawdzić testy z rozwijanego menu. Po ich rozwiązaniu testy zaczynają pojawiać się w Eksploratorze testów
gDexter42

Odpowiedzi:

227

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ć objoraz binkatalogi i zrobić odbudować.

Ourjamie
źródło
Chociaż sprzątanie czasami pomaga, nie jest to problemem. Mam problem z projektami na dyskach sieciowych. A fakt, że build zawsze pomaga, jest tylko objawem błędnego narzędzia do budowania.
ctrl-alt-delor
7
Łał! Wydaje się, że „czyste rozwiązanie” naprawdę działa (w przeciwieństwie do zwykłej przebudowy wszystkich). Myślałem, że przestało to być przydatnym hackiem w Visual Studio 6.0!
Dave
„Czysty” nie działał dla mojego współpracownika, który miał ten problem. To działało dla niej po usunięciu całego kodu źródłowego z jej obszaru roboczego TFS i uzyskaniu najnowszej wersji (w / overwrite). Potem działało świetnie!
Michael R
2
To było dla mnie. W rozwiązaniu z mieszanką x86, Any CPU, x64, nie znaleziono testów jednego konkretnego projektu. Oczyściłem rozwiązanie, zmieniłem domyślną architekturę ustawienia testowego i przebudowałem, a potem wszystko było widoczne. To naprawdę nie ma sensu, ponieważ zmiana architektury odkryła testy skompilowane w innej architekturze procesora.
Ben H
2
Właśnie wtedy, gdy zmieniłem domyślny procesor - pokazały wszystkie moje testy. Wielkie dzięki za to!
Dan But
160

Dodaj słowo kluczowe public do definicji klasy. Twoja klasa testowa jest obecnie niewidoczna poza własnym zestawem.

namespace tests {
    [TestClass]
    public class SimpleTest {
        [TestMethod]
        public void Test() {
            Assert.AreEqual("a","a", "same");
        }
    }
}
Joe King
źródło
24
Zrobiłem to dla mnie, prawie krępujące, którego sam się nie dowiedziałem :)
landi
5
Miałem również ten problem, mój był spowodowany przez [TestMethod]bycie statycznym z powodu kopiowania i wklejania innego kodu.
Seph
2
@Seph: Moje [TestMethod]są statyczne, ponieważ to właśnie UserTest1.csmiało miejsce w nowym projekcie testowym! Rozwiązałem również mój problem.
Andre Luus,
4
Nie stawiaj też staticswojej metody. Nie wiem, dlaczego tak często to robię z przyzwyczajenia.
levininja
1
Zrobiło to dla mnie ciekawe, jak można stracić tyle czasu na coś, co powinno być tak oczywiste. Dzięki za odpowiedź Joe King
Thulani Chivandikwa
58

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ń.

Peter Lamberg
źródło
Tak, mogą to być inne powody, dla których to nie zadziała, ale zobacz zaznaczoną odpowiedź poniżej, dlaczego nie zadziałało dla mnie. (foldery współdzielone są domyślnie wyłączone), jeśli możesz nam powiedzieć, jak to zmienić, dam ci kilka punktów.
ctrl-alt-delor
Nie ma takiego procesora jak x64, ale myślę, że Microsoft używa tego terminu dla x86-64 / amd64 / x86e. Nie ma również x86, tylko rodzina x86. X oznacza nieznane, więc członkowie rodziny x64 będą mieli 164, 264, 364… LUB był x86 86-bitowym procesorem.
ctrl-alt-delor
dzięki za odpowiedź, to mi pomaga (przełączyłem się z kompilacji x86 na kompilacje x64)
enguerran 28.03.2013
Nawet w VS 2015 działające okno Eksploratora testów działało. Cieszę się, że mogę również uruchamiać testy z wiersza poleceń.
Bryan
32

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!

dnnyz
źródło
1
Dostępne również za pośrednictwem NuGetInstall-Package NUnitTestAdapter
Darren Hale
Dzięki @DarrenHale. Podczas wyszukiwania tego pakietu w NuGet znalazłem również pakiet o nazwie NUnit TestAdapter zawierający NUnit 2.6.4 Framework .
promień
18

W moim ostatnim doświadczeniu wszystkie powyższe nie działały. Moja metoda testowa

public async void ListCaseReplace() { ... }

nie pojawił się, ale dobrze się kompilował. Po usunięciu asyncsłowa kluczowego test pojawił się w Eksploratorze testów. To dlatego, że async voidjest to metoda „ognia i zapomnienia”. Wybierz metodę, async Taska 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ć.

Księżycowy rycerz
źródło
2
Długo to zajęło mi zrozumienie tego. Zmodyfikowałem kilka metod do asynchronizacji i po prostu dodałem słowo kluczowe do testów. Dopiero kiedy zakodowałem przy tym nowy test jednostkowy, zauważyłem, że innych testów również brakuje. Znalazłem odpowiedź, która wyjaśnia, dlaczego tak się dzieje.
julealgon
12

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):

 caspol -m -ag 1.2 -url file:///H:/* FullTrust

Aby zweryfikować lub wyświetlić listę istniejących zaufanych lokalizacji, uruchom:

 caspol -lg
Taras Alenin
źródło
Ta odpowiedź jest niezweryfikowana przez pytającego, ponieważ nie interesuję się już odpowiedzią. Jeśli to działa (lub nie), dodaj komentarz poniżej.
ctrl-alt-delor
6
@richard Czy akceptujesz odpowiedź, której nie zweryfikowałeś, i głosujesz za innymi odpowiedziami opisującymi rozwiązania różnych przyczyn problemu? ....To jest dziwne!
Stephan Bauer,
1
Okazało się to dla mnie problemem, ale nie rozwiązaniem. Przenieśliłem wszystko lokalne i wszystkie testy zostały znalezione! Dzięki!
Travis Swientek
1
CasPol.exemoż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.aspx
EpicVoyage
To był również problem dla mnie. Tak irytujące, że VS ich nie podniósł, ale nie wskazał przyczyny!
kaybee99
10

Znalazł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

tim
źródło
6

Miałem ten sam problem .. W moim przypadku było to spowodowane własnością prywatną TestContext .

Zmiana na następującą pomogła:

public TestContext TestContext
{
    get;
    set;
}

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.

Stephan Bauer
źródło
OK, te same objawy, więc usuniesz głosowanie w dół, jeśli wyjaśnisz, co zmieniłeś (z czego).
ctrl-alt-delor
1
Miałem dokładnie to samo, śledziłem cały wątek, potem doszedłem do tego i wpadłem na pomysł, aby ustawić go jako publiczny, bingo: pojawiły się moje nowe testy. Rozumiem poprzednie komentarze, ale ... ponieważ ten przynosi nam Google ... to jest wątek do przeczytania, gdy testy się nie wyświetlają.
edelwater
1
To było przyczyną mojego problemu. Miałem pole interfejsu zależności jako pole prywatne. Ratujesz życie!
Alex
6

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.

dracocephalum
źródło
6

Szybka lista kontrolna do rozwiązywania niektórych typowych problemów testowych. Upewnić się, że:

  1. Klasa testowa i metody testowe są public
  2. Klasa testowa ma [TestClass]atrybut
  3. Metody testowe mają [TestMethod]atrybut

Jeśli to nie pomoże, spróbuj wyczyścić, odbudować rozwiązanie i ponownie uruchomić program Visual Studio.

SoftwareFactor
źródło
To rozwiąże problemy większości odwiedzających to pytanie i podsumuje większość odpowiedzi, jednak nie obejmuje problemu w pytaniu.
ctrl-alt-delor
1
Dziękuję Ci. UTA001: TestClass attribute defined on non-public class
Jarek Przygódzki
6

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.

Edward Olamisan
źródło
3
Pracowałem też dla mnie! Myślę, że to osobna kwestia.
Justin Morgan
2
Hej, to działa człowiek. Dziękuję bardzo .. Jakieś obejście, aby działało bez uruchamiania jako administrator?
Sriram Sakthivel,
2
Niestety nie sądzę, aby bieganie jako administrator było dobrym rozwiązaniem. Chyba że istnieją dowody, że jest to jedyny sposób.
ctrl-alt-delor
Uruchamianie jako administrator zazwyczaj nie stanowi dużego problemu. Ale jednym z problemów jest to, że nie można wysłać Workitem do perspektywy.
Edward Olamisan
Edytowałem swoją odpowiedź, aby utworzyć link do powiązanego postu SO, mam nadzieję, że nie masz nic przeciwko. Zgadzam się jednak ze Sriramem i Richardem. Chociaż to działa, jest to obejście, a nie rozwiązanie. Dlaczego w ogóle działa, wydaje się niejasne.
Steven Jeuris,
4

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.

CSharp
źródło
Nie sądzę, że to ten sam problem.
ctrl-alt-delor
3
Myślę, że to JEST ten sam problem, to tylko spowodowane przez coś innego.
Stephan Bauer,
2

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.

Adil
źródło
Próbowałem tego, oba działają z nunit. Ale tym razem próbuję uruchomić testy napisane przez kogoś innego Microsoft.VisualStudio.TestTools.UnitTesting, jakiś pomysł, co jeszcze robię źle?
ctrl-alt-delor
Nie robi to żadnej różnicy ... Czasami zdarza się, że nie odkrywasz testu jednostkowego ... więc jeśli otworzysz test eksploratora i zbudujesz rozwiązanie, za chwilę pojawi się test jednostkowy ... Być może już o tym wiesz. ..
Adil
2
Chciałem tylko upewnić się, że używasz wersji ekspresowej lub takiej, która nie zawierała narzędzi testowych. Czy próbowałeś zainstalować testera innej firmy?
Brett Allred
2

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.

Todd Carter
źródło
w moim przypadku app.config zabił także wygląd testu jednostkowego. Po usunięciu app.config i przebudowaniu projektu testowego w końcu wrócili!
Chris Richner
2

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/dependencyIdentityprzekierowanie w mojej app.config. Musiałem to poprawić. Zrozumiałem to, patrząc na Outputokno i wybierając „ Tests” z menu rozwijanego. Pojawił się komunikat o błędzie. To był ból ... Mam nadzieję, że to pomaga komuś innemu.

Nestor
źródło
2

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.

Jake_Howard
źródło
2

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

Mortey
źródło
2

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.

Shiran Jayawardena
źródło
@srebella Dobrze, że rozwiązałeś ten problem. Spędziłem dni, aby rozwiązać ten problem. Pls podziel się swoimi doświadczeniami ze społecznością. Umieść tę odpowiedź na górze, jeśli uważasz, że to działa. Dzięki :-)
Shiran Jayawardena
1

Zaktualizowałem VS 2012 do najnowszej aktualizacji. tj. aktualizacja studia wizualnego 3. To rozwiązało problem.

sam
źródło
1

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.

Zack Weiner
źródło
1

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:

    Failed to initialize client proxy: 
    could not connect to vstest.discoveryengine.x86.exe

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:

C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll

Zmieniłem numer wersji z 11.0 na 12.0:

C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll

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.

ladygargar
źródło
1

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ę.

Jan Dolejsi
źródło
lub po prostu pomiń sprawdzanie podpisu na komputerze lokalnym przez sn -Vr *,<public key token>administratora w wierszu polecenia VS programisty
Silas
1

Uderzył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ą”.

huddy72
źródło
1

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.

Mike Perrenoud
źródło
1

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.

Joshua Starner
źródło
1

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ć:

  1. 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

  2. Zainstaluj NUnit Test Adapter, w tym NUnit 2.6.3 Framework

  3. Rozwiązanie Clean / Rebuild

  4. Otwórz Test> Eksplorator testów> Uruchom wszystko

Widzę wszystkie przypadki testowe

Mam nadzieję że to pomoże

użytkownik 2831855
źródło
1

Ż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.

Craig Fisher
źródło
1

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ś.

mshsayem
źródło
1

Testy nie lubią metod asynchronicznych. Na przykład:

    [TestMethod]
    public async void TestMethod1()
    {
        TestLib oLib = new TestLib();
        var bTest = await oLib.Authenticate();

    }

Po zrobieniu tego:

    [TestMethod]
    public void TestAuth()
    {
        TestMethod1();
    }

    public async void TestMethod1()
    {
        TestLib oLib = new TestLib();
        var bTest = await oLib.Authenticate();

    }

To był test.

DaBlue
źródło
Lepszą odpowiedzią jest[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(); }
Robert Green MBA
3
„Testy nie lubią metod asynchronicznych to fałsz . „Testy nie lubią metod asynchronicznychprawdziwe , a rozwiązaniem jest po prostu zadeklarowanie metody testowej jako zadania asynchronicznego .
Massimiliano Kraus,
1

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.

simonlchilds
źródło