2016-01-31 10 views
13

Ho un ritardo molto lungo (circa 1 minuto! Ancora di più) durante l'esecuzione del test dell'unità in VS2015. Quando si esegue anche un singolo test, vedo la barra di avanzamento nella parte superiore del "Test Explorer", scorre per circa un minuto, e quindi ottengo il risultato del test. Il tempo di test segnalato è come previsto: molto piccolo, pochi millisecondi.Ritardo molto lungo durante l'esecuzione del test dell'unità C# in VS2015

La mia domanda è: come posso eseguire il debug di questo? Come posso vedere cosa sta succedendo in questo minuto prima che il test inizi effettivamente a funzionare?

+0

Non è chiaro se si esegue effettivamente il test di debug e il primo breakpoint viene rilevato dopo un minuto o se si esegue solo il test. Nel secondo caso per eseguire il debug di questo è necessario eseguire il breakpoint e il debug di test di esecuzione;) – vinjenzo

+0

Stai eseguendo un test universale per le unità di app di Windows? –

+2

Ho eseguito un problema simile su base casuale. Sembra essere un bug. Il più delle volte, i test vengono eseguiti molto velocemente (in millisecondi), ma poi ogni tanto sembra essere appeso a qualcosa. Non importa se sto eseguendo 1 test o 50. Solo una lunga pausa, a volte diversi minuti che attendono l'avvio del test. Quindi, una volta avviati i test, sono veloci. Di solito il riavvio di Visual Studio lo cancellerà ... per un po '. Molto noioso. Succede ancora nell'aggiornamento 2. –

risposta

2

Un minuto è un tempo piuttosto lungo per non sta accadendo nulla. C'è un sacco di elaborazione di avvio che deve accadere prima di eseguire qualsiasi test (tutti gli assembly e le loro dipendenze devono essere caricati, ad esempio). Questo colpo è generalmente lo stesso se stai eseguendo un singolo test o esegui tutti i test nella tua suite.

Se si guarda nella finestra di output "Test", si avrà un'idea migliore di ciò che sta effettivamente accadendo e la quantità effettiva di tempo impiegato per eseguire i test. Ad esempio sulla mia, esegue un test mostra un overhead simile all'esecuzione di 49 prove ..

Esegui test ========== finito: 1 run (0: 00: 01.0416253) === =======

Run ========== prova finito: 49 run (0: 00: 01.9156121) ==========

Ci sono varie cose che possono rallentare il caricamento degli assembly, come i costruttori statici. Tenderei a iniziare creando un nuovo progetto di test senza dipendenze per verificare che non presenti lo stesso lungo problema di ritardo in modo che tu sappia che non è solo la tua macchina. Quindi aggiungerei le dipendenze del progetto di test esistente, una dipendenza alla volta per vedere se aggiungere una particolare dipendenza innesca il ritardo ... Quindi guarderei quel progetto per vedere se c'è qualcosa che sta succedendo, come costruttori che tentano di connettersi a un database/stabilire connessioni di rete.

Potrebbe anche valere la pena provare a eseguire il debug dei test, ma assicurandosi di avere Break When Exceptions attivato (se è qualcosa come una connessione al database fallita che sta causando il rallentamento ci sono buone probabilità eccezione potrebbe essere generata come parte di tale processo).

Problemi correlati