Condividi tramite


Risoluzione dei problemi relativi agli strumenti di test per Visual Studio ALM

Quando si esegue il test del codice, in determinate condizioni è possibile che vengano generati errori o avvisi o che il test non riesca. In questo argomento vengono descritte alcune di tali condizioni e le misure che è possibile adottare per risolverle.

Risoluzione dei problemi relativi all'esecuzione dei test

Le condizioni che possono impedire la corretta esecuzione dei test possono essere attribuite all'impossibilità di distribuire il file dei test o altri file necessari.

  • Test remoti. Per i test remoti, è possibile che vengano generati errori a causa di problemi di comunicazione con il computer remoto. Questi e altri errori a livello di test e a livello di esecuzione vengono descritti in Risoluzione dei problemi relativi all'esecuzione dei test.

  • Unit test ASP.NET. Se lo unit test ASP.NET è in esecuzione nel processo IIS, è possibile scegliere di eseguire il processo ASP.NET come utente non predefinito, ovvero con un'identità di processo diversa, per motivi di sicurezza. In questo caso, l'esecuzione del test può non riuscire.

  • Risoluzione dei problemi relativi ai test Web. Durante l'esecuzione di test Web è possibile che si verifichino vari errori, che possono essere causati da un attributo di associazione dati mancante, da problemi con le impostazioni di sicurezza o da un tentativo di accedere a un sito Web esterno al firewall. Per ulteriori informazioni, vedere Risoluzione dei problemi relativi ai test Web.

  • Risoluzione dei problemi relativi ai test di carico. Durante l'esecuzione di test di carico è possibile che si verifichino vari errori, che possono essere causati da problemi con il database dei test di carico, dall'insieme di contatori nel test di carico, da un controller e un agente di test non configurati correttamente o da uno dei test contenuti nel test di carico. Per ulteriori informazioni, vedere Risoluzione dei problemi relativi ai test di carico.

Ripetizione della firma di assembly con nome sicuro

Quando si eseguono gli unit test, si testa il codice in un binario. È possibile raccogliere informazioni di code coverage durante l'esecuzione di questi test tramite la strumentazione del binario. Vedere Procedura: ottenere dati di code coverage. Con il processo di strumentazione viene aggiunto codice che genera informazioni di code coverage nel binario.

Se il binario che si sta testando è un assembly con nome sicuro, la modifica del codice causata dalla strumentazione invalida la firma. Quindi Visual Studio tenta automaticamente di ripetere la firma dell'assembly immediatamente dopo il passaggio della strumentazione. Per ulteriori informazioni sugli assembly con nome sicuro, vedere Assembly con nomi sicuri.

La ripetizione della firma può non riuscire se si verificano varie condizioni. Per informazioni su come ovviare a queste condizioni, vedere Strumentazione e ripetizione della firma di assembly.

Dati di code coverage e VSPerfMon.exe

Se si esegue VSPerfMon.exe contemporaneamente ai test per i quali si raccolgono dati di code coverage, si verificano i seguenti eventi:

  • Se si esegue VSPerfMon con l'opzione TRACE o SAMPLE, l'esecuzione simultanea del test non riesce e nella pagina Dettagli esecuzione dei test viene segnalato un errore.

  • Se si esegue VSPerfMon.exe con l'opzione COVERAGE, il processo VSPerfMon.exe viene arrestato.

In entrambi i casi, la soluzione alternativa è evitare di eseguire contemporaneamente VSPerfMon.exe e i test per i quali si raccolgono dati di code coverage. Per ulteriori informazioni sullo strumento VSPerfMon.exe, vedere VSPerfMon.

Situazioni in cui si verifica il problema

VSPerfMon viene eseguito in genere nei seguenti casi:

  • È stata avviata una sessione di profilatura, possibilmente in un'istanza di Visual Studio diversa da quella in cui si eseguono i test.

  • Si raccolgono dati di code coverage o di profilatura eseguendo VSPerfMon.exe direttamente o, caso più comune, tramite il wrapper VSPerfCmd.exe.

Visualizzazione non corretta dei dati di code coverage

Se è stato richiesto di raccogliere dati di code coverage per i test ma questi non vengono visualizzati o vengono visualizzati in modo diverso dal previsto, è possibile che si sia verificata una delle seguenti situazioni:

  • Dati di code coverage non visualizzati. Durante l'esecuzione dei test, determinati binari, ad esempio le DLL COM, vengono caricati dal percorso originale e non dalla directory di distribuzione dei test. Tali binari devono essere instrumentati sul posto. In caso contrario, sebbene l'esecuzione del test riesca e non vengano generati avvisi a livello di esecuzione, i dati di code coverage non vengono raccolti. Per ulteriori informazioni, vedere Scelta della cartella di strumentazione.

  • Evidenziazione dei dati di code coverage non presente. Quando si eseguono i test, si raccolgono i dati di code coverage e quindi si visualizzano i risultati dei test, in Visual Studio il codice testato nell'esecuzione dei test viene indicato tramite evidenziazione nel relativo file del codice sorgente. È possibile scegliere i colori che indicano i dati analizzati, non analizzati o parzialmente analizzati. Se questa evidenziazione non è presente o non è completa, assicurarsi che i colori prescelti siano diversi dal colore di sfondo del file del codice sorgente. Per ulteriori informazioni sulla scelta dei colori per l'evidenziazione, vedere la sezione "Modifica della visualizzazione dei dati di code coverage" in Procedura: ottenere dati di code coverage.

  • Unione non corretta dei dati di code coverage. È possibile unire risultati che includono una o più esecuzioni di test ASP.NET, ma nella finestra Risultati code coverage i dati ASP.NET verranno visualizzati in Risultati uniti in nodi distinti anziché in un unico nodo unito.

  • Visualizzazione parziale dei dati di code coverage uniti. Dopo aver unito dati di code coverage, è possibile esportarli su disco come file XML. Se questo file viene reimportato e quindi unito a dati aggiuntivi, non tutte le statistiche verranno visualizzate.

  • Non è possibile importare i dati di code coverage. Visual Studio deve essere in grado di individuare determinati file su disco per poter importare dati di code coverage.

  • Binari instrumentati sovrascritti. Si sta tentando di raccogliere dati di code coverage da un programma in esecuzione durante un test manuale. Se si utilizza CTRL+F5 per avviare tale programma, l'azione di CTRL+F5 fa sì che il binario del programma venga generato di nuovo. In questo modo il binario instrumentato viene sovrascritto e pertanto non è possibile raccogliere dati di code coverage.

Per informazioni generali sulla raccolta di dati di code coverage, vedere Procedura: ottenere dati di code coverage.

Vedere anche

Attività

Procedura: unire dati di code coverage

Risoluzione dei problemi relativi ai test Web

Risoluzione dei problemi relativi ai test di carico

Concetti

Utilizzo di dati di code coverage uniti