Dov'è la selezione "Crea test unitari"?


154

Ho installato il nuovo Visual Studio 2012 Ultimate.

Ho creato un progetto di test con la mia soluzione e contiene alcuni test di unità predefiniti. Tuttavia, facendo clic con il pulsante destro del mouse su nuovi metodi non viene più visualizzato il menu di scelta rapida "Crea test unitari".

Vedi Visual Studio 2010 Ultimate: inserisci qui la descrizione dell'immagine

E Visual Studio 2012 Ultimate: inserisci qui la descrizione dell'immagine

Qualche idea sul perché potrebbe essere?

AGGIORNARE:

Soluzione per Visual Studio 2012 e 2013:

Microsoft l'ha riconosciuto qui e offre un lavoro ufficiale attorno alla patch per risolverlo. Scarica, installa e divertiti!


sono entrambi lo stesso progetto o build mvc?
Daniel A. White

Questi sono nuovi progetti MVC 4 creati da zero.
Houman,

Interessante. Cosa succede quando si fa clic su "Esegui test unità"?
Diego

2
lo segnalerei come un bug.
Daniel A. White

4
VS 11 si è mosso molto nella direzione di fornire un'infrastruttura di test tramite MSTest a fornire un framework di test collegabile. Questo potrebbe essere una ricaduta da quella decisione. Ad ogni modo, vorrei presentare un bug
JaredPar

Risposte:


86

Questa funzione è stata tagliata da VS.

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

Generazione guidata test unità - In VS2010 è possibile fare clic con il pulsante destro del mouse su un metodo nel codice e generare un test unità nel progetto di test. Questa procedura guidata è stata strettamente accoppiata a MS-Test e ha fatto affidamento su funzionalità come Private Accessors per fare il suo lavoro, quindi è stata tagliata. Stiamo esplorando alternative qui, ma non abbiamo ancora buone soluzioni.

MODIFICA C'è un lavoro intorno: http://blogs.msdn.com/b/malaysia/archive/2013/02/20/right-click-create-unit-tests.aspx


16
Spero che trovino una soluzione funzionante. Sembra un grande passo indietro altrimenti
Andrew Harry

3
Sembra che la terza opzione in quella soluzione alternativa non sia più disponibile in VS2013.
Sander,

La funzionalità torna su VS2015 blogs.msdn.com/b/visualstudioalm/archive/2015/03/06/… grazie a quelli che hanno votato a favore in visualstudio.uservoice.com/forums/121579-visual-studio/… . @furier: Forse hai votato per questo?
LosManos,

Voglio dire, era lì 5 minuti fa ... non è lì adesso - perché va e viene?
BrainSlugs83,

33

È disponibile l'estensione " Unit Test Generator "

Estensione del generatore di unit test

Per aggiungere direttamente dall'IDE di Visual Studio 2012/2013:

  1. Menu: Strumenti -> Estensioni e aggiornamenti
  2. Fare clic su: Online -> Galleria di Visual Studio
  3. Cerca: "Generatore di unit test"

Dimostrazione video MSDN

Nota: MSTest in VS 2012/2013 fa ancora schifo


28

La voce di menu è ancora attiva, ma per motivi sconosciuti è invisibile nell'editor di codice. Ma puoi usare i comandi di Visual Studio per eseguire la procedura guidata di unit test. Il comando che ti serve è

EditorContextMenus.CodeWindow.CreateUnitTests

Apri la finestra di comando e digita il comando lì. Oppure digita un comando alias come segue

alias ut EditorContextMenus.CodeWindow.CreateUnitTests

e assegnare l'alias per eseguire il comando più velocemente.

Un altro modo per eseguire la procedura guidata è la scorciatoia da tastiera. In Visual Studio aperto

Tools -> Options -> Environment -> Keyboard

Digita "createunit" nella casella di testo "Mostra comandi contenenti" per filtrare il comando CreateUnitTests, selezionalo. Scegli "Editor di testo" in "Usa nuova scorciatoia" nella combo e premi la scorciatoia desiderata nel campo di testo "Premi tasti scorciatoia" (ad es. Ctrl + T, Ctrl + C). Infine, premi il pulsante Assegna. Godere!


7
Non riesco a farlo funzionare. Ho impostato il cursore sul metodo. Premi il shortcode che ho aggiunto ma poi ricevi un messaggio: il comando "EditorContextMenus.CodeWindow.CreateUnitTests" non è disponibile.
Ralph Jansen,

Ho provato su Visual Studio 2012 Ultimate con l'aggiornamento installato, potrebbe essere importante.
intrueder

1
Ottengo lo stesso errore di LockTar quando provo questo. Quindi il modo più semplice per usare unit test è realizzare un nuovo progetto di unit test.
Saadan,

Non riesco a spiegare perché hai ricevuto un errore, ma ho preso il video di prova e puoi guardarlo su grabilla.com/02c0a-6f42a829-1535-4016-a7ff-cbbda665bee5.html
intrueder

Se procedura guidata non è disponibile, vedere il blog dl.my/2013/create-unit-tests-function-not-available-or-disabled o mia risposta qui sotto stackoverflow.com/a/15184716/52277
Michael Freidgeim

19

Ecco come riattivarlo:

Metodo 1 - Finestra dei comandi

Se trovi abbastanza difficile, scoprirai che il comando per invocare il Crea test unit ... è in realtà:

EditorContextMenus.CodeWindow.CreateUnitTests

È possibile effettivamente digitarlo nella finestra di comando per richiamare la Creazione guidata test unità. Se lo trovi troppo dettagliato, puoi effettivamente creare un alias per questo.

alias ut EditorContextMenus.CodeWindow.CreateUnitTests

Quindi digita ut per avviare la procedura guidata.

Metodo 2 - Scorciatoia da tastiera

Il prossimo metodo è andare su Strumenti-> Opzioni-> Ambiente-> Tastiera e impostare un tasto di scelta rapida di tua preferenza.

Metodo 3: riattivare il menu contestuale Crea unità ...

Per riattivare il menu Crea test unità ..., vai su Strumenti-> Personalizza ... per avviare la finestra di dialogo Personalizza. Nella finestra di dialogo Personalizza, vai alla scheda Comandi, seleziona il pulsante di opzione del menu contestuale e scegli Editor menu contestuali | Finestra del codice.

Ti renderai conto che la voce di menu è effettivamente disponibile nel menu contestuale. Gli sviluppatori VS sono stati così gentili da lasciarlo lì per noi.

Fare clic sulla voce di menu Crea test unità ... e fare clic su Sposta giù fino a quando non è attivo / sotto il comando "Esegui test ..". Quindi fare clic su Chiudi.

Riavvia Visual Studio 2012 e il gioco è fatto! Il menu contestuale sarà disponibile!

È possibile scoprire che l'utilizzo di uno dei metodi sopra elencati potrebbe non funzionare. vale a dire che la finestra di comando ti dirà che il comando non è disponibile, la scorciatoia da tastiera non si attiverà o il menu contestuale sarà disponibile ma disabilitato.

Per consentire a tutti questi di funzionare, è innanzitutto necessario disporre di un progetto di unit test nella soluzione. Dopo aver creato il Progetto test unit, dovrai aggiungere manualmente un elemento Test unit al progetto anche se il progetto si svolge con uno solo. Dopo aver fatto ciò, tutto funzionerà come in Visual Studio 2010. Puoi rimuovere in sicurezza quei file UnitTest1.cs.

Fonte (con immagini, non ho abbastanza punti Rep per metterli):
http://serena-yeoh.blogspot.fr/2013/02/visual-studio-2012-create-unit-test.html

(ps: leggi le avvertenze !!!!)


Si noti che la procedura guidata per la creazione di test unitari VS 2012 supporta i test di generazione solo per metodi pubblici, quando nella versione precedente erano supportati anche metodi privati.
Michael Freidgeim,

3
Questo mi ha aiutato molto, grazie mille. Mi mancava l'aggiunta di una fase di test unità fittizia nel mio rimedio.
Tanveer Badar,

1
Creazione manuale di un'unità di test importante. Silly non so perché la voce di menu sia stata disabilitata fino ad allora.
indolentdeveloper


9

La risposta di intrueder non ha funzionato per molti utenti. Quando inserisco UT in una finestra di comando, a volte avevo il seguente

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

Ma a volte ha funzionato per la stessa soluzione, quindi il comportamento sembrava intermittente.

Con l'aiuto del post di Dawa Law " Crea test unità ... Funzione non disponibile o disabilitata " Ho scoperto che durante ogni sessione di Visual Studio è necessario creare manualmente una classe di test prima che la procedura guidata sia disponibile.

Se nella soluzione è presente un progetto Unit Test esistente,

In Esplora soluzioni, fare clic con il pulsante destro del mouse sul progetto Unit Test -> Aggiungi -> Unit Test ... Ciò creerà una nuova classe di unit test e attiverà Visual Studio che è disponibile una classe di unit test esistente, abilitando quindi la procedura guidata Crea test unit. Nota: è possibile eliminare il file di classe Test unità creato (UnitTestX.cs) mentre viene utilizzato per attivare la funzione.

Se non si dispone di un progetto Unit Test esistente nella soluzione, è necessario crearlo prima di aggiungere una classe manuale:

Vai a File -> Aggiungi -> Nuovo progetto ... Nella finestra Aggiungi nuovo progetto, seleziona Installato -> Visual C # -> Test -> Progetto unit test. Dagli un nome significativo e fai clic su OK

Il post della legge Dawa " Crea test unit ..." Funzione non disponibile o disabilitato ha delle istantanee per illustrare ogni passaggio.

Si noti che la procedura guidata per la creazione di test unitari VS 2012 supporta i test di generazione solo per metodi pubblici , quando nella versione precedente erano supportati anche metodi privati.

.


"è necessario creare manualmente una classe di test prima che la procedura guidata sia disponibile" - mi ha fatto il trucco alla fine
Jorj

Grazie ho usato il blog di Dawa Law ed è finalmente fatto :)
Ahmed Elbatt,


4

Puoi riguadagnare il pulsante destro del mouse "Crea test unità ..." importando le seguenti impostazioni da qui .


3

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

Metodo 3: riattivare il menu contestuale Crea unità ...

Questo è di gran lunga il metodo migliore di sempre. Per riattivare il menu Crea test unità ..., vai su Strumenti-> Personalizza ... per avviare la finestra di dialogo Personalizza. Nella finestra di dialogo Personalizza, vai alla scheda Comandi, seleziona il pulsante di opzione del menu contestuale e scegli Editor menu contestuali | Finestra del codice.


...e poi cosa? È già elencato lì dentro ma non viene visualizzato quando faccio clic con il tasto destro.
Luke Puplett,

0

"Potresti scoprire che l'utilizzo di uno dei metodi sopra elencati potrebbe non funzionare. Ad esempio, la finestra di comando ti dirà che il comando non è disponibile, la scorciatoia da tastiera non si attiverà o il menu contestuale sarà disponibile ma disabilitato.

Per consentire a tutti questi di funzionare, è innanzitutto necessario disporre di un progetto di unit test nella soluzione. Dopo aver creato il Progetto test unit, dovrai aggiungere manualmente un elemento Test unit al progetto anche se il progetto si svolge con uno solo. Dopo aver fatto ciò, tutto funzionerà come in Visual Studio 2010. Puoi rimuovere in sicurezza quei file UnitTest1.cs. "

(Michael Freidgeim)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.