Eseguire unit test usando Test Explorer
Usare Test Explorer per eseguire test unitari dai progetti di Visual Studio o da progetti di terze parti. In Esplora test è possibile raggruppare i test in categorie, filtrare l'elenco di test e creare, salvare ed eseguire playlist di test. È anche possibile usare Esplora test per eseguire il debug di unit test e, in Visual Studio Enterprise, per analizzare la copertura del codice.
Esplora test può eseguire test da più progetti di test in una soluzione e da classi di test che fanno parte dei progetti di codice di produzione. I progetti di test possono usare vari framework di unit test. Quando il codice sottoposto a test viene scritto per .NET, il progetto di test può essere scritto in qualsiasi linguaggio destinato anche a .NET, indipendentemente dal linguaggio del codice di destinazione. È necessario testare progetti di codice C e C++ nativi usando un framework di unit test C++.
Compilare il progetto di test
Se non è già stato configurato un progetto di test nella soluzione Visual Studio, è prima necessario creare e compilare un progetto di test. Usare queste risorse:
Visual Studio include i framework di unit test Microsoft per codice gestito e nativo. Esplora test può tuttavia eseguire anche qualsiasi framework di unit test che ha implementato un adattatore Esplora test. Per altre informazioni sull'installazione di framework di unit test di terze parti, vedere Installare framework di unit test.
Eseguire test in Test Explorer
Quando si compila il progetto di test, i test vengono visualizzati in Esplora test. Se Esplora test non è visibile, selezionare Test dal menu di Visual Studio e quindi selezionare Esplora test oppure premere CTRL+E, T.
Quando esegui, scrivi e riesegui i test, Test Explorer visualizza i risultati in un raggruppamento predefinito di Project, Namespace e Classe . È possibile modificare il modo in cui Esplora test raggruppa i test.
È possibile eseguire gran parte del lavoro di ricerca, organizzazione ed esecuzione di test dalla barra degli strumenti Esplora test.
Eseguire test
Scegliere una di queste opzioni per l'esecuzione dei test:
Per eseguire tutti i test in una soluzione, selezionare l'icona Esegui tutto oppure premere CTRL+R, V.
Per eseguire tutti i test in un gruppo predefinito, selezionare l'icona Esegui e quindi selezionare il gruppo nel menu.
Per eseguire singoli test, selezionare uno o più test, fare clic con il pulsante destro del mouse in un punto del riquadro e quindi selezionare Esegui test selezionati (o premere CTRL+R, T).
Se i singoli test non hanno dipendenze che impediscono l'esecuzione in qualsiasi ordine, attivare l'esecuzione di test paralleli nel menu delle impostazioni della barra degli strumenti. Questa azione può ridurre il tempo di esecuzione di tutti i test.
Nota
Per configurare la piattaforma di destinazione (architettura del processo) per l'esecuzione di unit test, vedere Configurare l'architettura del processo per uno unit test.
Eseguire test dopo ogni compilazione
Per eseguire gli unit test dopo ogni compilazione locale, selezionare l'icona delle impostazioni sulla barra degli strumenti esplora test e quindi selezionare Esegui test dopo la compilazione.
Visualizzare i risultati dei test
Mentre esegui, scrivi e riesegui i tuoi test, Esplora test visualizza i risultati in gruppi di test non superati, test superati, test ignoratie test non eseguiti. Il riquadro dei dettagli nella parte inferiore o laterale di Esplora test visualizza un riepilogo dell'esecuzione del test.
Visualizzare i dettagli del test
Per visualizzare i dettagli di un singolo test, selezionare il test.
Viene visualizzato il riquadro per i dettagli del test:
Nome del file di origine e numero di riga del metodo di test.
Stato del test.
Tempo trascorso per l'esecuzione del metodo di test.
Se il test non riesce, viene visualizzato anche il riquadro dei dettagli:
Il messaggio che il framework di unit test restituisce per il test.
La traccia dello stack al momento in cui il test non è riuscito.
Visualizzare il codice sorgente di un metodo di test
Per visualizzare il codice sorgente per un metodo di test nell'editor di Visual Studio, fare clic con il pulsante destro del mouse sul test e quindi scegliere Apri test (o selezionare il tasto F12).
Raggruppare e filtrare l'elenco di test
In Esplora test è possibile raggruppare i test in categorie predefinite. La maggior parte dei framework di unit test eseguiti in Esplora test consente di definire categorie e coppie categoria/valore personalizzate per raggruppare i test. È anche possibile filtrare l'elenco dei test in base alle stringhe corrispondenti rispetto alle proprietà di test.
Raggruppare i test nell'elenco dei test
Esplora test consente di raggruppare i test in una gerarchia. Il raggruppamento di gerarchie predefinito è Project, spazio dei nomi e quindi Classe. Per modificare la modalità di organizzazione dei test, selezionare il pulsante Raggruppa per nel gruppo Esplora test , quindi selezionare un nuovo criterio di raggruppamento.
È possibile definire i propri livelli della gerarchia (raggruppando per Stato e quindi Classe, ad esempio) selezionando group by opzioni nell'ordine preferito.
Esplora test consente di raggruppare i test in una gerarchia. Il raggruppamento di gerarchie predefinito è Project, spazio dei nomi e quindi Classe. Per modificare la modalità di organizzazione dei test, selezionare il pulsante Raggruppa per nel gruppo Esplora test , quindi selezionare un nuovo criterio di raggruppamento.
È possibile definire i propri livelli della gerarchia (raggruppando per Stato e quindi Classe, ad esempio) selezionando group by opzioni nell'ordine preferito.
Gruppi di Test Explorer
Gruppo | Descrizione |
---|---|
Durata | Raggruppa i test in base al tempo di esecuzione: Fast, Medium, Slow. |
stato | Raggruppa i test in base ai risultati dell'esecuzione: test non superati, test ignorati, test superati, test non eseguiti. |
Framework di Destinazione | Raggruppa i test in base al framework di destinazione dei progetti. |
spazio dei nomi | Raggruppa i test in base allo spazio dei nomi contenitore. |
Progetto | Raggruppa i test in base al progetto contenitore. |
classe | Raggruppa i test in base alla classe contenitore. |
Tratti
Un tratto è in genere una coppia nome/valore di categoria, ma può anche essere una singola categoria. I tratti possono essere assegnati ai metodi identificati dal framework di unit test come metodi di test.
Un framework di unit test può definire categorie di tratti. È possibile aggiungere valori alle categorie di tratto per definire coppie nome/valore di categoria personalizzate. Il framework di unit test definisce la sintassi per specificare categorie e valori di tratto.
Tratti nel framework di unit testing di Microsoft per codice gestito
Nel Microsoft Unit Testing Framework for Managed Code, si definisce una coppia nome/valore di un tratto in un attributo TestPropertyAttribute. Il framework di test contiene anche questi tratti predefiniti:
Tratto | Descrizione |
---|---|
OwnerAttribute | La categoria Owner è definita dal framework di unit test e richiede che tu fornisca un valore di stringa del proprietario. |
PriorityAttribute | La categoria Priority è definita dal framework di unit test e richiede di specificare un valore intero della priorità. |
TestCategoryAttribute | L'attributo TestCategory consente di specificare la categoria di uno unit test. |
TestPropertyAttribute | L'attributo TestProperty consente di definire una coppia categoria/valore di tratto. |
Tratti nel Microsoft Unit Testing Framework per C++
Consultare Usare il Microsoft Unit Testing Framework per C++ in Visual Studio.
Creare playlist personalizzate
È possibile creare e salvare un elenco di test da eseguire o visualizzare come gruppo. Quando si seleziona una playlist, i test nell'elenco vengono visualizzati in una nuova scheda Esplora test. È possibile aggiungere un test a più playlist.
Per creare una playlist:
- Selezionare uno o più test in Esplora Test.
- Fare clic con il pulsante destro del mouse nel riquadro, scegliere Aggiungi alla playliste quindi selezionare Nuova playlist.
La playlist viene aperta in una nuova scheda Esplora test. Puoi usare questa playlist una sola volta e quindi eliminarla. In alternativa, è possibile selezionare il pulsante Salva sulla barra degli strumenti della finestra della playlist e quindi selezionare un nome e un percorso per salvare la playlist.
Per aprire una playlist:
- Sulla barra degli strumenti di Visual Studio selezionare l'icona della playlist.
- Nel menu selezionare un file di playlist salvato in precedenza.
Per modificare una playlist, usa una di queste opzioni:
Fare clic con il pulsante destro del mouse su qualsiasi test e quindi usare i comandi di menu per aggiungerlo o rimuoverlo da una playlist.
Sulla barra degli strumenti selezionare il pulsante Modifica playlist. Le caselle di controllo visualizzate accanto ai test mostrano quali test sono inclusi ed esclusi nella playlist. Modificare i gruppi in modo desiderato. Questa funzionalità è stata avviata in Visual Studio 2019 versione 16.7.
È anche possibile selezionare o deselezionare le caselle per i gruppi padre nella gerarchia. Questa azione crea una playlist dinamica che aggiorna sempre la playlist in base ai test presenti in tale gruppo.
Ad esempio, se si seleziona una casella di controllo accanto a una classe, qualsiasi test aggiunto da tale classe diventa parte di questa playlist. Se si elimina un test da tale classe, viene rimosso dalla playlist.
Per ottenere maggiori informazioni sulle regole, salva la playlist tramite il pulsante Salva sulla barra degli strumenti e quindi apri il file XML .playlist creato sul disco. Questo file elenca tutte le regole e i singoli test che costituiscono una playlist.
Se vuoi creare una playlist per i tratti, usa il formato seguente per il framework MSTest:
<Playlist Version="2.0">
<Rule Name="Includes" Match="Any">
<Property Name="Trait" Value="SchemaUpdateBasic" />
</Rule>
</Playlist>
Usare il formato seguente per il framework xUnit. Assicurarsi che sia presente uno spazio tra il nome TestCategory
e il valore [Value]
.
<Playlist Version="2.0">
<Rule Name="Includes" Match="Any">
<Rule Match="All">
<Property Name="Solution" />
<Rule Match="Any">
<Property Name="Trait" Value="TestCategory [Value]" />
</Rule>
</Rule>
</Rule>
</Playlist>
È possibile creare e salvare un elenco di test da eseguire o visualizzare come gruppo. Quando si seleziona una playlist, i test nell'elenco vengono visualizzati in una nuova scheda Esplora test. È possibile aggiungere un test a più playlist.
Per creare una playlist:
- Selezionare uno o più test in Esplora Test.
- Fare clic con il pulsante destro del mouse nel riquadro, scegliere Aggiungi alla playliste quindi selezionare Nuova playlist.
La playlist viene aperta in una nuova scheda Esplora test. Puoi usare questa playlist una sola volta e quindi eliminarla. In alternativa, è possibile selezionare il pulsante Salva sulla barra degli strumenti della finestra della playlist e quindi selezionare un nome e un percorso per salvare la playlist.
Per aprire una playlist:
- Sulla barra degli strumenti di Visual Studio selezionare l'icona della playlist.
- Nel menu selezionare un file di playlist salvato in precedenza.
Per modificare una playlist, usa una di queste opzioni:
Fare clic con il pulsante destro del mouse su qualsiasi test e quindi usare i comandi di menu per aggiungerlo o rimuoverlo da una playlist.
Sulla barra degli strumenti selezionare il pulsante Modifica playlist. Le caselle di controllo visualizzate accanto ai test mostrano quali test sono inclusi ed esclusi nella playlist. Modificare i gruppi in modo desiderato. Questa funzionalità è stata avviata in Visual Studio 2019 versione 16.7.
È anche possibile selezionare o deselezionare le caselle per i gruppi padre nella gerarchia. Questa azione crea una playlist dinamica che aggiorna sempre la playlist in base ai test presenti in tale gruppo.
Ad esempio, se si seleziona una casella di controllo accanto a una classe, qualsiasi test aggiunto da tale classe diventa parte di questa playlist. Se si elimina un test da tale classe, viene rimosso dalla playlist.
Per ottenere maggiori informazioni sulle regole, salva la playlist tramite il pulsante Salva sulla barra degli strumenti e quindi apri il file XML .playlist creato sul disco. Questo file elenca tutte le regole e i singoli test che costituiscono una playlist.
Se vuoi creare una playlist per i tratti, usa il formato seguente per il framework MSTest:
<Playlist Version="2.0">
<Rule Name="Includes" Match="Any">
<Property Name="Trait" Value="SchemaUpdateBasic" />
</Rule>
</Playlist>
Usare il formato seguente per il framework xUnit. Assicurarsi che sia presente uno spazio tra il nome TestCategory
e il valore [Value]
.
<Playlist Version="2.0">
<Rule Name="Includes" Match="Any">
<Rule Match="All">
<Property Name="Solution" />
<Rule Match="Any">
<Property Name="Trait" Value="TestCategory [Value]" />
</Rule>
</Rule>
</Rule>
</Playlist>
Colonne di Esplora Test
Gruppi sono disponibili anche come colonne in Esplora test, insieme a Traits, Stack Trace, Messaggio di erroree Nome completo. La maggior parte delle colonne non è visibile per impostazione predefinita. È possibile personalizzare le colonne visualizzate.
Le colonne possono essere filtrate, riorganiizzate e ordinate:
Per filtrare in base a tratti specifici, selezionare l'icona del filtro in cima alla colonna Tratti.
Per modificare l'ordine delle colonne, selezionare un'intestazione di colonna e trascinarla a sinistra o a destra.
Per ordinare una colonna, selezionare l'intestazione della colonna. Non tutte le colonne possono essere ordinate. È anche possibile ordinare in base a una colonna secondaria tenendo premuto MAIUSC e selezionando un'intestazione di colonna aggiuntiva.
Colonne di Esplora Test
Gruppi sono disponibili anche come colonne in Esplora test, insieme a Traits, Stack Trace, Messaggio di erroree Nome completo. La maggior parte delle colonne non è visibile per impostazione predefinita. È possibile personalizzare le colonne visualizzate.
Le colonne possono essere filtrate, riorganiizzate e ordinate:
Per filtrare in base a tratti specifici, selezionare l'icona del filtro in cima alla colonna Tratti.
Per modificare l'ordine delle colonne, selezionare un'intestazione di colonna e trascinarla a sinistra o a destra.
Per ordinare una colonna, selezionare l'intestazione della colonna. Non tutte le colonne possono essere ordinate. È anche possibile ordinare in base a una colonna secondaria tenendo premuto MAIUSC e selezionando un'intestazione di colonna aggiuntiva.
Cerca e filtra l'elenco dei test
È anche possibile usare i filtri di ricerca di Esplora test per limitare i metodi di test nei progetti visualizzati ed eseguiti.
Quando si digita una stringa nella casella di ricerca Esplora test e si seleziona invio, l'elenco di test viene filtrato per visualizzare solo i test i cui nomi completi contengono la stringa.
Per filtrare in base a un criterio diverso:
Aprire l'elenco a discesa a destra della casella di ricerca.
Scegliere un nuovo criterio.
Immettere il valore del filtro tra virgolette. Se si desidera cercare una corrispondenza esatta nella stringa anziché una corrispondenza parziale, usare un uguale (=) anziché i due punti (:).
Nota
Le ricerche non fanno distinzione tra maiuscole e minuscole e corrispondono alla stringa specificata a qualsiasi parte del valore del criterio.
Qualificatore | Descrizione |
---|---|
stato | Cerca le corrispondenze nei nomi delle categorie di Test Explorer: Test Non Superati, Test Ignorati, Test Superati. |
tratti | Cerca le corrispondenze nelle categorie di tratti e nei valori. Il framework di unit test definisce la sintassi per specificare categorie e valori di tratto. |
nome completamente qualificato | Cerca corrispondenze nel nome completamente qualificato degli spazi dei nomi, delle classi e dei metodi di test. |
Progetto | Cerca le corrispondenze nei nomi dei progetti di test. |
Framework di Destinazione | Cerca le corrispondenze nei framework di test. |
spazio dei nomi | Cerca le corrispondenze nei namespace di test. |
classe | Cerca corrispondenze nei nomi delle classi di test. |
Per escludere un subset dei risultati di un filtro, utilizzare la sintassi seguente:
FilterName:"Criteria" -FilterName:"SubsetCriteria"
Ad esempio, FullName:"MyClass" - FullName:"PerfTest"
restituisce tutti i test che includono "MyClass" nel nome, ad eccezione dei test che includono anche "PerfTest" nel nome.
Analizzare il code coverage degli unit test
È possibile determinare la quantità di codice prodotto che gli unit test stanno effettivamente testando usando lo strumento di copertura di Visual Studio Code disponibile in Visual Studio Enterprise. È possibile eseguire code coverage su test selezionati o su tutti i test in una soluzione.
Per eseguire la copertura del codice per i metodi di test in una soluzione:
- Fare clic con il pulsante destro del mouse in Esplora test, quindi seleziona Analizza copertura del codice per i test selezionati.
Nella finestra Risultati Code Coverage viene visualizzata la percentuale dei blocchi di codice prodotto utilizzati per riga, funzione, classe, spazio dei nomi e modulo.
Per ulteriori informazioni, vedere Usare la copertura del codice per determinare quanta parte del codice viene testata.
Scorciatoie di test
È possibile eseguire test da Esplora test in uno dei due casi:
- Fare clic con il pulsante destro del mouse su un test nell'editor di codice e quindi scegliere Esegui test
- Uso dei collegamenti predefiniti Esplora test in Visual Studio
Alcune scorciatoie sono basate sul contesto. Vengono eseguiti debugo test dei profili in base alla posizione in cui si trova il cursore nell'editor di codice. Se il cursore si trova all'interno di un metodo di test, il metodo di test viene eseguito. Se il cursore si trova a livello di classe, allora vengono eseguiti tutti i test in quella classe. Lo stesso comportamento vale per il livello dello spazio dei nomi.
Comandi frequenti | Tasti di scelta rapida |
---|---|
TestExplorer.DebugAllTestsInContext |
Ctrl+R, Ctrl+T |
TestExplorer.RunAllTestsInContext |
Ctrl+R, T |
TestExplorer.RunAllTests |
Ctrl+R, A |
TestExplorer.RepeatLastRun |
Ctrl+R, L |
Nota
Non è possibile eseguire un test in una classe astratta, perché le classi astratte non vengono istanziate. Per eseguire test in classi astratte, creare una classe che deriva dalla classe astratta.
Configurare segnali audio
Esplora test può riprodurre uno di questi suoni al termine di un'esecuzione di test:
- Suono che indica che l'esecuzione del test ha avuto esito positivo con tutti i test superati
- Suono che indica che l'esecuzione del test è stata completata con almeno un test non superato
Puoi configurare questi suoni nella finestra di dialogo predefinita di Windows 11 Sound. Questa funzionalità è disponibile a partire da Visual Studio 2019 Update 16.9 Preview 3.
- Aprire la finestra di dialogo audio predefinita di Windows 11 .
- Passare alla scheda Suoni.
- Trova la categoria Microsoft Visual Studio. Seleziona il suono predefinito Esecuzione del test riuscita o Esecuzione del test non riuscita, oppure sfoglia per trovare il tuo file audio.