Wo ist die Auswahl "Unit Tests erstellen"?


154

Ich habe das neue Visual Studio 2012 Ultimate installiert.

Ich habe mit meiner Lösung ein Testprojekt erstellt, das einige Standardeinheitentests enthält. Wenn Sie jedoch mit der rechten Maustaste auf neue Methoden klicken, wird das Kontextmenü "Unit-Tests erstellen" nicht mehr angezeigt.

Siehe Visual Studio 2010 Ultimate: Geben Sie hier die Bildbeschreibung ein

Und Visual Studio 2012 Ultimate: Geben Sie hier die Bildbeschreibung ein

Irgendeine Idee warum das sein könnte?

AKTUALISIEREN:

Lösung für Visual Studio 2012 und 2013:

Microsoft hat dies hier bestätigt und bietet einen offiziellen Patch zur Problemumgehung an, um das Problem zu beheben. Herunterladen, installieren und genießen!


sind beide das gleiche projekt oder mvc build?
Daniel A. White

Dies sind neue MVC 4-Projekte, die von Grund auf neu erstellt wurden.
Houman

Interessant. Was passiert, wenn Sie auf "Unit Tests ausführen" klicken?
Diego

2
Ich würde dies als Fehler melden.
Daniel A. White

4
VS 11 hat viel von der Bereitstellung einer Testinfrastruktur über MSTest zur Bereitstellung eines steckbaren Testframeworks getan. Dies könnte eine Folge dieser Entscheidung sein. In jedem Fall würde ich einen Fehler
melden

Antworten:


86

Diese Funktion wurde aus VS geschnitten.

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

Assistent zum Generieren von Komponententests - In VS2010 können Sie mit der rechten Maustaste auf eine Methode in Ihrem Code klicken, und wir generieren einen Komponententest für Ihr Testprojekt. Dieser Assistent war sehr eng mit MS-Test verbunden und war für seine Arbeit auf Funktionen wie Private Accessors angewiesen. Daher wurde er abgeschnitten. Wir suchen hier nach Alternativen, haben aber noch keine guten Lösungen.

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


16
Ich hoffe, sie finden eine funktionierende Lösung. Scheint ansonsten ein großer Rückschritt zu sein
Andrew Harry

3
Die dritte Option in dieser Problemumgehung scheint in VS2013 nicht mehr verfügbar zu sein.
Sander


Ich meine, es war vor 5 Minuten dort ... es ist jetzt einfach nicht da - warum kommt und geht es?
BrainSlugs83

33

Die Erweiterung " Unit Test Generator " ist verfügbar

Unit Test Generator Extension

So fügen Sie direkt aus der Visual Studio 2012/2013-IDE hinzu:

  1. Menü: Extras -> Erweiterungen und Updates
  2. Klicken Sie auf: Online -> Visual Studio Gallery
  3. Suche nach: "Unit Test Generator"

MSDN-Videodemonstration

Hinweis: MSTest in VS 2012/2013 ist immer noch schlecht


28

Der Menüpunkt ist noch vorhanden, aber aus unbekannten Gründen im Code-Editor nicht sichtbar. Sie können jedoch Visual Studio-Befehle verwenden, um den Unit-Test-Assistenten auszuführen. Der Befehl, den Sie benötigen, ist

EditorContextMenus.CodeWindow.CreateUnitTests

Öffnen Sie das Befehlsfenster und geben Sie dort den Befehl ein. Oder geben Sie einen Alias-Befehl wie folgt ein

alias ut EditorContextMenus.CodeWindow.CreateUnitTests

und weisen Sie den Alias ​​zu, um den Befehl schneller auszuführen.

Eine andere Möglichkeit, den Assistenten auszuführen, ist die Tastenkombination. Öffnen Sie in Visual Studio

Tools -> Options -> Environment -> Keyboard

Geben Sie "createunit" in das Textfeld "Befehle mit" anzeigen ein, um den Befehl CreateUnitTests herauszufiltern, und wählen Sie ihn aus. Wählen Sie "Texteditor" in der Kombination "Neue Verknüpfung verwenden in" und drücken Sie die gewünschte Verknüpfung im Textfeld "Tastenkombinationen drücken" (z. B. Strg + T, Strg + C). Drücken Sie abschließend die Schaltfläche Zuweisen. Genießen!


7
Ich kann das nicht zum Laufen bringen. Ich setze meinen Cursor auf die Methode. Drücken Sie den von mir hinzugefügten Shortcode, erhalten Sie jedoch eine Meldung: Der Befehl "EditorContextMenus.CodeWindow.CreateUnitTests" ist nicht verfügbar.
Ralph Jansen

Ich habe Visual Studio 2012 Ultimate mit installiertem Update ausprobiert. Vielleicht ist es wichtig.
Eindringling

1
Ich erhalte den gleichen Fehler wie LockTar, wenn ich dies versuche. Der einfachste Weg, Unit Test zu verwenden, besteht darin, ein neues Unit Test-Projekt zu erstellen.
Saadan

Ich kann nicht erklären, warum Sie einen Fehler erhalten haben, aber ich habe das Proof-Video aufgenommen und Sie können es unter grabilla.com/02c0a-6f42a829-1535-4016-a7ff-cbbda665bee5.html
Eindringling

Wenn der Assistent nicht verfügbar ist, lesen Sie den Blog dl.my/2013/create-unit-tests-function-not-available-or-disabled oder meine Antwort unter stackoverflow.com/a/15184716/52277
Michael Freidgeim

19

So aktivieren Sie es erneut:

Methode 1 - Befehlsfenster

Wenn Sie es schwer genug finden, werden Sie feststellen, dass der Befehl zum Aufrufen der Create Unit Tests ... tatsächlich lautet:

EditorContextMenus.CodeWindow.CreateUnitTests

Sie können dies tatsächlich in das Befehlsfenster eingeben, um den Assistenten zum Erstellen von Komponententests aufzurufen. Wenn Sie es zu ausführlich finden, können Sie tatsächlich einen Alias ​​dafür erstellen.

alias ut EditorContextMenus.CodeWindow.CreateUnitTests

Geben Sie dann einfach ut ein, um den Assistenten zu starten.

Methode 2 - Tastenkombination

Die nächste Methode besteht darin, unter Extras-> Optionen-> Umgebung-> Tastatur eine Tastenkombination Ihrer Wahl festzulegen.

Methode 3 - Aktivieren Sie das Kontextmenü Create Unit Tests ... erneut.

Um das Menü Unit-Tests erstellen ... wieder zu aktivieren, gehen Sie zu Extras-> Anpassen ..., um das Dialogfeld Anpassen zu öffnen. Wechseln Sie im Dialogfeld "Anpassen" zur Registerkarte "Befehle", aktivieren Sie das Optionsfeld "Kontextmenü" und wählen Sie "Kontextmenüs des Editors" | Codefenster.

Sie werden feststellen, dass der Menüpunkt tatsächlich im Kontextmenü verfügbar ist. Die VS-Entwickler waren so freundlich, es für uns dort zu lassen.

Klicken Sie auf den Menüpunkt Unit Tests erstellen ... und klicken Sie auf Nach unten, bis der Befehl "Tests ausführen" aktiviert ist. Klicken Sie dann auf Schließen.

Starten Sie Visual Studio 2012 neu und fertig! Das Kontextmenü wird verfügbar sein!

Möglicherweise stellen Sie fest, dass die Verwendung einer der oben genannten Methoden möglicherweise nicht funktioniert. Das Befehlsfenster zeigt an, dass der Befehl nicht verfügbar ist, die Tastenkombination nicht ausgelöst wird oder das Kontextmenü verfügbar, aber deaktiviert ist.

Damit all dies funktioniert, benötigen Sie zunächst ein Unit-Test-Projekt in Ihrer Lösung. Nach dem Erstellen des Unit-Test-Projekts müssen Sie dem Projekt manuell ein Unit-Test-Element hinzufügen, obwohl sich das Projekt mit einem eigenen Element entfaltet. Nachdem Sie dies getan haben, funktioniert alles wie in Visual Studio 2010. Sie können diese UnitTest1.cs-Dateien sicher entfernen.

Quelle (mit Bildern habe ich nicht genügend Rep-Punkte, um sie zu platzieren):
http://serena-yeoh.blogspot.fr/2013/02/visual-studio-2012-create-unit-test.html

(ps: lies die Vorbehalte !!!!)


Beachten Sie, dass der VS 2012-Assistent zum Erstellen von Komponententests Generierungstests nur für öffentliche Methoden unterstützt, wenn in früheren Versionen auch private Methoden unterstützt wurden.
Michael Freidgeim

3
Das hat mir sehr geholfen, vielen Dank. Mir fehlte der Schritt zum Hinzufügen eines Dummy-Unit-Tests in meinem Mittel.
Tanveer Badar

1
Manuelles Erstellen eines Einheitentests von Bedeutung. Dumm nicht sicher, warum der Menüpunkt bis dahin deaktiviert war.
Indolentdeveloper


9

Die Antwort des Eindringlings funktionierte bei vielen Benutzern nicht. Wenn ich UT in einem Befehlsfenster eingebe, hatte ich manchmal Folgendes

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

Aber manchmal funktionierte es für die gleiche Lösung, so dass das Verhalten zeitweise zu sein schien.

Mit Hilfe von Dawa Laws Beitrag " Komponententests erstellen ... Funktion nicht verfügbar oder deaktiviert " stellte ich fest, dass Sie während jeder Visual Studio-Sitzung eine Testklasse manuell erstellen müssen, bevor der Assistent verfügbar ist.

Wenn Sie ein vorhandenes Unit-Test-Projekt in der Lösung haben,

Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Unit-Test-Projekt -> Hinzufügen -> Unit-Test. Dadurch wird eine neue Unit-Test-Klasse erstellt und Visual Studio ausgelöst, dass eine vorhandene Unit-Test-Klasse verfügbar ist. Dadurch wird der Assistent zum Erstellen von Unit-Tests aktiviert. Hinweis: Sie können die erstellte Unit Test-Klassendatei (UnitTestX.cs) löschen, die zum Auslösen der Funktion verwendet wird.

Wenn die Lösung kein vorhandenes Unit-Test-Projekt enthält, müssen Sie es erstellen, bevor Sie eine manuelle Klasse hinzufügen:

Gehen Sie zu Datei -> Hinzufügen -> Neues Projekt… Wählen Sie im Fenster Neues Projekt hinzufügen die Option Installiert -> Visual C # -> Test -> Unit-Test-Projekt. Geben Sie ihm einen aussagekräftigen Namen und klicken Sie auf OK

Die Funktion " Komponententests erstellen ..." des Dawa-Gesetzes enthält Schnappschüsse, um jeden Schritt zu veranschaulichen.

Beachten Sie, dass der VS 2012-Assistent zum Erstellen von Komponententests Generierungstests nur für öffentliche Methoden unterstützt, wenn in früheren Versionen auch private Methoden unterstützt wurden.

.


"Sie müssen eine Testklasse manuell erstellen, bevor der Assistent verfügbar ist" - das hat mir am Ende den Trick getan
Jorj

Danke, ich habe Dawa Laws Blog benutzt und es ist endlich fertig :)
Ahmed Elbatt


4

Sie können den Rechtsklick auf "Unit Tests erstellen ..." wiedererlangen, indem Sie die folgenden Einstellungen von hier importieren .


3

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

Methode 3 - Aktivieren Sie das Kontextmenü Create Unit Tests ... erneut.

Dies ist bei weitem die beste Methode aller Zeiten. Um das Menü Unit-Tests erstellen ... wieder zu aktivieren, gehen Sie zu Extras-> Anpassen ..., um das Dialogfeld Anpassen zu öffnen. Wechseln Sie im Dialogfeld "Anpassen" zur Registerkarte "Befehle", aktivieren Sie das Optionsfeld "Kontextmenü" und wählen Sie "Kontextmenüs des Editors" | Codefenster.


...und dann was? Es ist dort bereits aufgeführt, wird aber nicht angezeigt, wenn ich mit der rechten Maustaste klicke.
Luke Puplett

0

"Möglicherweise stellen Sie fest, dass die Verwendung einer der oben genannten Methoden möglicherweise nicht funktioniert. Das Befehlsfenster zeigt an, dass der Befehl nicht verfügbar ist, die Tastenkombination nicht ausgelöst wird oder das Kontextmenü verfügbar, aber deaktiviert ist.

Damit all dies funktioniert, benötigen Sie zunächst ein Unit-Test-Projekt in Ihrer Lösung. Nach dem Erstellen des Unit-Test-Projekts müssen Sie dem Projekt manuell ein Unit-Test-Element hinzufügen, obwohl sich das Projekt mit einem eigenen Element entfaltet. Nachdem Sie dies getan haben, funktioniert alles wie in Visual Studio 2010. Sie können diese UnitTest1.cs-Dateien sicher entfernen. "

(Michael Freidgeim)

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.