Gdzie jest opcja „Utwórz testy jednostkowe”?

154

Zainstalowałem nowy Visual Studio 2012 Ultimate.

Utworzyłem projekt testowy z moim rozwiązaniem i zawiera on kilka domyślnych testów jednostkowych. Jednak kliknięcie prawym przyciskiem myszy nowych metod nie powoduje już wyświetlenia menu kontekstowego „Utwórz testy jednostkowe”.

Zobacz Visual Studio 2010 Ultimate: wprowadź opis obrazu tutaj

Oraz Visual Studio 2012 Ultimate: wprowadź opis obrazu tutaj

Masz jakiś pomysł, dlaczego tak może być?

AKTUALIZACJA:

Rozwiązanie dla programu Visual Studio 2012 i 2013:

Microsoft potwierdził to tutaj i oferuje oficjalną obejście poprawki, aby to naprawić. Pobierz, zainstaluj i ciesz się!

Houman
źródło
czy to ten sam projekt czy kompilacja MVC?
Daniel A. White
To są nowe projekty MVC 4 zbudowane od podstaw.
Houman
Ciekawy. Co się stanie, gdy klikniesz „Uruchom testy jednostkowe”?
Diego
2
zgłosiłbym to jako błąd.
Daniel A. White
4
VS 11 znacznie poszedł w kierunku od zapewnienia infrastruktury testowej za pośrednictwem MSTest do dostarczenia podłączanej struktury testowej. Może to być konsekwencją tej decyzji. Tak czy inaczej
zgłosiłbym

Odpowiedzi:

86

Ta funkcja została usunięta z VS.

http://blogs.msdn.com/b/visualstudioalm/archive/2012/03/08/what-s-new-in-visual-studio-11-beta-unit-testing.aspx

Kreator generowania testów jednostkowych - w VS2010 można kliknąć prawym przyciskiem myszy metodę w kodzie, a my wygenerujemy test jednostkowy w projekcie testowym. Ten kreator był bardzo ściśle powiązany z MS-Test i polegał na funkcjach, takich jak Private Accessors, aby wykonać swoją pracę, więc został odcięty. Badamy tutaj alternatywy, ale nie mamy jeszcze żadnych dobrych rozwiązań.

EDYCJA Istnieje obejście: http://blogs.msdn.com/b/malaysia/archive/2013/02/20/right-click-create-unit-tests.aspx

Daniel A. White
źródło
16
Mam nadzieję, że znajdą działające rozwiązanie. Inaczej wygląda to na duży krok w tył
Andrew Harry,
3
Wygląda na to, że trzecia opcja w tym obejściu nie jest już dostępna w VS2013.
Sander
Funkcjonalność powraca w VS2015 blogs.msdn.com/b/visualstudioalm/archive/2015/03/06/ ... dzięki tym, którzy głosowali na nią w visualstudio.uservoice.com/forums/121579-visual-studio/ ... . @furier: Może na to zagłosowałeś?
LosManos
To znaczy, to było 5 minut temu ... po prostu go nie ma teraz - dlaczego przychodzi i odchodzi?
BrainSlugs83
33

W „ Test Generator Jednostka ” rozszerzenie jest dostępne

Rozszerzenie generatora testów jednostkowych

Aby dodać bezpośrednio z Visual Studio 2012/2013 IDE:

  1. Menu: Narzędzia -> Rozszerzenia i aktualizacje
  2. Kliknij: Online -> Visual Studio Gallery
  3. Wyszukaj: „Generator testów jednostkowych”

Demonstracja wideo MSDN

Uwaga: MSTest w VS 2012/2013 nadal jest do bani

JohnB
źródło
28

Element menu jest nadal na swoim miejscu, ale z nieznanych powodów jest niewidoczny w edytorze kodu. Możesz jednak użyć poleceń programu Visual Studio, aby uruchomić kreatora testów jednostkowych. Polecenie, którego potrzebujesz, to

EditorContextMenus.CodeWindow.CreateUnitTests

Otwórz okno poleceń i wpisz tam polecenie. Lub wpisz polecenie aliasu w następujący sposób

alias ut EditorContextMenus.CodeWindow.CreateUnitTests

i przypisz alias, aby szybciej uruchamiać polecenie.

Innym sposobem uruchomienia kreatora jest skrót klawiaturowy. W programie Visual Studio otwórz

Tools -> Options -> Environment -> Keyboard

Wpisz „createunit” w polu tekstowym „Pokaż polecenia zawierające”, aby odfiltrować polecenie CreateUnitTests, wybierz je. Wybierz „Edytor tekstu” w kombi „Użyj nowego skrótu w” i naciśnij żądany skrót w polu tekstowym „Naciśnij klawisze skrótu” (np. Ctrl + T, Ctrl + C). Na koniec naciśnij przycisk Przypisz. Cieszyć się!

intruz
źródło
7
Nie mogę zmusić tego do pracy. Ustawiłem kursor na metodzie. Wciśnij skrócony kod, który dodałem, ale otrzymam wiadomość: Polecenie „EditorContextMenus.CodeWindow.CreateUnitTests” nie jest dostępne.
Ralph Jansen
Próbowałem na Visual Studio 2012 Ultimate z zainstalowaną aktualizacją, może to ma znaczenie.
intruz
1
Kiedy próbuję, pojawia się ten sam błąd co LockTar. Zatem najłatwiejszym sposobem na użycie testów jednostkowych jest stworzenie nowego projektu testowego.
saadan
Nie potrafię wyjaśnić, dlaczego wystąpił błąd, ale złapałem film próbny i możesz go obejrzeć na grabilla.com/02c0a-6f42a829-1535-4016-a7ff-cbbda665bee5.html
intruz
Jeśli kreator nie jest dostępny, zobacz blog dl.my/2013/create-unit-tests-function-not-available-or-disabled lub moją odpowiedź poniżej stackoverflow.com/a/15184716/52277
Michael Freidgeim
19

Oto jak włączyć go ponownie:

Metoda 1 - Okno poleceń

Jeśli okaże się to wystarczająco trudne, odkryjesz, że polecenie wywołania testów jednostkowych ... jest w rzeczywistości:

EditorContextMenus.CodeWindow.CreateUnitTests

W rzeczywistości możesz wpisać to w oknie poleceń, aby wywołać Kreatora tworzenia testów jednostkowych. Jeśli uznasz to za zbyt rozwlekłe, możesz utworzyć dla niego alias.

alias ut EditorContextMenus.CodeWindow.CreateUnitTests

Następnie wpisz ut, aby uruchomić kreatora.

Metoda 2 - skrót klawiaturowy

Następną metodą jest przejście do Narzędzia-> Opcje-> Środowisko-> Klawiatura i ustawienie preferowanego klawisza skrótu.

Metoda 3 - Ponownie włącz menu kontekstowe Utwórz testy jednostkowe ...

Aby ponownie włączyć menu Utwórz testy jednostkowe ..., przejdź do Narzędzia-> Dostosuj ..., aby uruchomić okno dialogowe Dostosuj. W oknie dialogowym Dostosuj przejdź do zakładki Polecenia, wybierz przycisk opcji Menu kontekstowe i wybierz polecenie Edytor Menu kontekstowe | Okno kodu.

Zrozumiesz, że pozycja menu jest faktycznie dostępna w menu kontekstowym. Programiści VS byli na tyle uprzejmi, że zostawili to dla nas.

Kliknij pozycję menu Utwórz testy jednostkowe… i kliknij Przenieś w dół, aż znajdzie się w poleceniu „Uruchom testy…”. Następnie kliknij Zamknij.

Uruchom ponownie Visual Studio 2012 i to wszystko! Menu kontekstowe będzie dostępne!

Może się okazać, że użycie którejkolwiek z powyższych metod może nie działać. tzn. Okno poleceń poinformuje Cię, że polecenie nie jest dostępne, skrót klawiaturowy nie zostanie uruchomiony lub menu kontekstowe będzie dostępne, ale wyłączone.

Aby to wszystko działało, musisz najpierw mieć w swoim rozwiązaniu projekt testu jednostkowego. Po utworzeniu projektu testu jednostkowego należy ręcznie dodać element testu jednostkowego do projektu, mimo że projekt rozwija się samodzielnie. Po wykonaniu tej czynności wszystko będzie działać tak, jak w programie Visual Studio 2010. Możesz bezpiecznie usunąć te pliki UnitTest1.cs.

Źródło (z obrazami, nie mam wystarczającej liczby punktów reputacji, aby je umieścić):
http://serena-yeoh.blogspot.fr/2013/02/visual-studio-2012-create-unit-test.html

(ps: przeczytaj ostrzeżenia !!!!)

Sebastien H.
źródło
Należy zauważyć, że Kreator tworzenia testów jednostkowych VS 2012 obsługuje testy generowania tylko dla metod publicznych, gdy w poprzedniej wersji były również obsługiwane metody prywatne.
Michael Freidgeim
3
Bardzo mi to pomogło, bardzo dziękuję. Brakowało mi dodania fikcyjnego etapu testu jednostkowego w moim rozwiązaniu.
Tanveer Badar
1
Ręczne tworzenie jednego testu jednostkowego ważnych plików. Głupio nie wiem, dlaczego pozycja menu była do tego czasu wyłączona.
indolentdeveloper
Tutaj też znalazłem to samo .. dawalaw.com/2013/enable-create-unit-tests-on-visual-studio-2012
Sunny Tambi
9

Odpowiedź od intrueder nie działa dla wielu użytkowników. Kiedy wchodziłem do UT w oknie poleceń, czasami miałem następujące rzeczy

>UT
Command "EditorContextMenus.CodeWindow.CreateUnitTests" is not available.

Ale czasami działało to dla tego samego rozwiązania, więc zachowanie wydawało się sporadyczne.

Z pomocą Dawa Law posta „ Utwórz testy jednostkowe… Funkcja niedostępna lub wyłączona ” odkryłem, że podczas każdej sesji Visual Studio musisz ręcznie utworzyć jedną klasę testową, zanim kreator będzie dostępny.

Jeśli masz istniejący projekt testów jednostkowych w rozwiązaniu,

W Eksploratorze rozwiązań kliknij prawym przyciskiem myszy projekt testu jednostkowego -> Dodaj -> Test jednostkowy… Spowoduje to utworzenie nowej klasy testów jednostkowych i wyzwolenie programu Visual Studio, że istniejąca klasa testów jednostkowych jest dostępna, a tym samym włącza kreatora tworzenia testów jednostkowych. Uwaga: Możesz usunąć utworzony plik klasy testu jednostkowego (UnitTestX.cs), ponieważ jest używany do wyzwalania funkcji.

Jeśli nie masz istniejącego projektu testów jednostkowych w rozwiązaniu, musisz go utworzyć przed dodaniem klasy ręcznej:

Przejdź do File -> Add -> New Project… W oknie Add New Project wybierz Installed -> Visual C # -> Test -> Unit Test Project. Nadaj mu zrozumiałą nazwę i kliknij OK

W Dawa Law „s post„ Tworzenie testów jednostek ...»Funkcja niedostępna lub niepełnosprawnych posiada zrzuty do zilustrowania każdym kroku.

Należy zauważyć, że kreator tworzenia testów jednostkowych programu VS 2012 obsługuje testy generowania dla metod publicznych , gdy w poprzedniej wersji były również obsługiwane metody prywatne.

.

Michael Freidgeim
źródło
„musisz ręcznie utworzyć jedną klasę testową, zanim kreator będzie dostępny” - w końcu to
załatwiło sprawę
Dzięki, skorzystałem z bloga
Dawy
4

Możesz odzyskać prawym przyciskiem „Tworzenie testów jednostek ...” importując następujące vssettings od tutaj .

Dawa Law
źródło
3

http://blogs.msdn.com/b/malaysia/archive/2013/02/20/right-click-create-unit-tests.aspx

Metoda 3 - Ponownie włącz menu kontekstowe Utwórz testy jednostkowe ...

To zdecydowanie najlepsza metoda. Aby ponownie włączyć menu Utwórz testy jednostkowe ..., przejdź do Narzędzia-> Dostosuj ..., aby uruchomić okno dialogowe Dostosuj. W oknie dialogowym Dostosuj przejdź do zakładki Polecenia, wybierz przycisk opcji Menu kontekstowe i wybierz polecenie Edytor Menu kontekstowe | Okno kodu.

Peter Ming
źródło
...I co wtedy? Jest tam już wymienione, ale nie wyświetla się, gdy klikam prawym przyciskiem myszy.
Luke Puplett
0

"Możesz odkryć, że użycie którejkolwiek z powyższych metod może nie zadziałać. Tj. Okno poleceń wyświetli komunikat, że polecenie nie jest dostępne, skrót klawiaturowy nie zostanie uruchomiony lub menu kontekstowe będzie dostępne, ale wyłączone.

Aby to wszystko działało, musisz najpierw mieć w swoim rozwiązaniu projekt testu jednostkowego. Po utworzeniu projektu testu jednostkowego należy ręcznie dodać element testu jednostkowego do projektu, mimo że projekt rozwija się samodzielnie. Po wykonaniu tej czynności wszystko będzie działać tak, jak w programie Visual Studio 2010. Możesz bezpiecznie usunąć te pliki UnitTest1.cs ”.

(Michael Freidgeim)

varini
źródło