Eseguire unit test con Esplora test

Usare Esplora test per eseguire unit test da Visual Studio o da progetti di unit test di terze parti. È anche possibile usare Esplora test per raggruppare i test in categorie, filtrare l'elenco dei 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 il code coverage.

Esplora test può eseguire test da più progetti di test in una soluzione e da classi di test appartenenti a progetti di codice di produzione. I progetti di test possono usare framework di unit test diversi. Se il codice sottoposto a test è scritto per .NET, il progetto di test può essere scritto in qualsiasi linguaggio destinato anche a .NET, indipendentemente dal linguaggio del codice di destinazione. I progetti in codice C/C++ nativo devono essere testati tramite 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.

Visual Studio include i framework di unit test Microsoft sia per il codice gestito sia per quello nativo. Tuttavia, Esplora test può eseguire anche qualsiasi framework di unit test in cui sia implementato un adattatore di Esplora test. Per altre informazioni sull'installazione di framework di unit test di terze parti, vedere Installare framework di unit test di terze parti.

Eseguire test in Esplora test

Quando si compila il progetto di test, i test vengono visualizzati in Esplora test. Se Esplora test non è visibile, scegliere Test dal menu di Visual Studio e quindi scegliere Esplora test (o premere CTRL + E, T).

Test Explorer

Test Explorer

Quando si eseguono, scrivono e rieseguono i test, Esplora test visualizza i risultati in un raggruppamento predefinito di Progetto, Spazio dei nomi e Classe. È possibile cambiare il modo in cui Esplora test raggruppa i test.

È possibile eseguire molte delle operazioni di ricerca, organizzazione ed esecuzione dei test dalla barra degli strumenti di Esplora test.

Run tests from the Test Explorer toolbar

Run tests from the Test Explorer toolbar

Esecuzione dei test

È possibile eseguire tutti i test nella soluzione, tutti i test in un gruppo o un set di test selezionati. Eseguire una delle operazioni seguenti:

  • Per eseguire tutti i test in una soluzione, scegliere l'icona Esegui tutto oppure premere CTRL + R, V.

  • Per eseguire tutti i test in un gruppo predefinito, scegliere Esegui e quindi scegliere il gruppo dal menu.

  • Selezionare i singoli test da eseguire, aprire il menu di scelta rapida per un test selezionato e quindi scegliere Esegui test selezionati (oppure premere CTRL + R, T).

  • Se i singoli test non hanno dipendenze che ne impediscono l'esecuzione in qualsiasi ordine, attivare l'esecuzione parallela dei test nel menu Impostazioni sulla barra degli strumenti. Questo può ridurre notevolmente il tempo impiegato per eseguire tutti i test.

Eseguire test dopo ogni compilazione

Per eseguire gli unit test dopo ogni compilazione locale, aprire l'icona Impostazioni sulla barra degli strumenti di Esplora test e selezionare Esegui test dopo compilazione.

Visualizzare i risultati dei test

Quando si eseguono, si scrivono e si rieseguono i test, Esplora test mostra i risultati nei gruppi Test non superati, Test superati, Test ignorati e Test non eseguiti. Il riquadro dei dettagli nella parte inferiore o laterale della finestra Esplora test mostra un riepilogo dell'esecuzione dei test.

Visualizzare i dettagli dei test

Per visualizzare i dettagli di un singolo test, selezionare il test.

Test execution details

Test execution details

Il riquadro dei dettagli del test mostra le informazioni seguenti:

  • Nome del file di origine e numero di riga del metodo di test.

  • Stato del test.

  • Tempo impiegato per l'esecuzione del metodo di test.

Se il test non viene superato, il riquadro dei dettagli mostra anche le informazioni seguenti:

  • Messaggio restituito dal framework di unit test per il test.

  • Analisi dello stack al momento del mancato superamento del test.

Visualizzare il codice sorgente di un metodo di test

Per visualizzare il codice sorgente per un metodo di test nell'editor di Visual Studio, selezionare il test e quindi scegliere Apri test dal menu di scelta rapida o premere F12.

Raggruppare e filtrare l'elenco dei test

Esplora test consente di raggruppare i test in categorie predefinite. La maggior parte dei framework di unit test eseguiti in Esplora Test consente di definire categorie personalizzate e coppie categoria/valore per raggruppare i test. È anche possibile filtrare l'elenco dei test in base a stringhe corrispondenti nelle proprietà dei test.

Raggruppare i test nell'elenco di test

Esplora test consente di raggruppare i test in una gerarchia. Il raggruppamento predefinito della gerarchia è Progetto, Spazio dei nomi e quindi Classe. Per modificare la modalità di organizzazione dei test, scegliere il pulsante Test Explorer group button Raggruppa per e selezionare un nuovo criterio di raggruppamento.

Group tests by category in Test Explorer

È possibile definire i propri livelli della gerarchia e raggruppare in base a Stato e quindi a Classe, ad esempio, selezionando le opzioni di Raggruppa per nell'ordine preferito.

Screenshot of the Visual Studio Test Explorer showing a test hierarchy in one pane and the Group By menu in the other with the Class and State options checked.

Esplora test consente di raggruppare i test in una gerarchia. Il raggruppamento predefinito della gerarchia è Progetto, Spazio dei nomi e quindi Classe. Per modificare la modalità di organizzazione dei test, scegliere il pulsante Test Explorer group button Raggruppa per e selezionare un nuovo criterio di raggruppamento.

Group tests by category in Test Explorer

È possibile definire i propri livelli della gerarchia e raggruppare in base a Stato e quindi a Classe, ad esempio, selezionando le opzioni di Raggruppa per nell'ordine preferito.

Screenshot of the Visual Studio Test Explorer showing a test hierarchy in one pane and the Group By menu in the other with the Class and State options checked.

Gruppi di Esplora test

Gruppo Descrizione
Durata Raggruppa i test in base al tempo di esecuzione: Veloce, Medio e Lento.
Stato Raggruppa i test in base ai risultati dell'esecuzione: test non superati, test ignorati, test superati, non esecuzione
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

Una tratto è in genere una coppia nome/valore di una categoria, ma può anche essere una singola categoria. I tratti possono essere assegnati ai metodi identificati come metodi di test dal framework di unit test. Un framework di unit test può definire le categorie dei tratti. È possibile aggiungere valori alle categorie dei tratti per definire coppie nome/valore personalizzate per le categorie. La sintassi per specificare i valori e le categorie dei tratti è definita dal framework di unit test.

Tratti nel framework di unit test Microsoft per il codice gestito

Nel framework di unit test Di Microsoft per le app gestite si definisce una coppia nome/valore del tratto in un TestPropertyAttribute attributo. Il framework di test contiene anche i tratti predefiniti seguenti:

Caratteristica Descrizione
OwnerAttribute La categoria Owner è definita dal framework di unit test e richiede di specificare un valore di stringa relativo al proprietario.
PriorityAttribute La categoria Priority è definita dal framework di unit test e richiede di specificare un valore integer relativo alla 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 un tratto.

Tratti nel framework di unit test Microsoft per C++

Vedere Come usare il framework di testing unità Microsoft per C++.

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, scegliere uno o più test in Esplora Test. Scegliere Aggiungi a playlist>Nuova playlist dal menu di scelta rapida.

Create a playlist

La playlist viene aperta in una nuova scheda Esplora test. È possibile usare questa playlist una sola volta e quindi eliminarla oppure fare clic sul pulsante Salva sulla barra degli strumenti della finestra della playlist, quindi selezionare un nome e un percorso per salvare la playlist.

Playlist opens in separate test explorer tab

Per creare una playlist, scegliere uno o più test in Esplora Test. Fare clic con il pulsante destro del mouse e scegliere Aggiungi a playlist>Nuova playlist.

Per aprire una playlist, scegliere l'icona della playlist sulla barra degli strumenti di Visual Studio, quindi scegliere un file di playlist salvato in precedenza dal menu.

Per modificare una playlist, è possibile fare clic con il pulsante destro del mouse su qualsiasi test e usare le opzioni di menu per aggiungerla o rimuoverla da una playlist.

A partire da Visual Studio 2019 versione 16.7, è possibile scegliere il pulsante Modifica sulla barra degli strumenti. Le caselle di controllo verranno visualizzate accanto ai test che mostrano quali test sono inclusi ed esclusi nella playlist. Modificare i gruppi in base alle esigenze.

Edit Playlist button

È anche possibile selezionare o deselezionare le caselle dei 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 inserisce un segno di spunta 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 altre informazioni sulle regole, salvare la playlist con il pulsante Salva sulla barra degli strumenti e aprire il file con estensione playlist creato sul disco. Questo file elenca tutte le regole e i singoli test che costituiscono una playlist.

Playlist xml file

Se vuoi creare una playlist per i tratti, usa il formato seguente per MSTest.

<Playlist Version="2.0">
	<Rule Name="Includes" Match="Any">
		<Property Name="Trait" Value="SchemaUpdateBasic" />
	</Rule>
</Playlist>

Usare il formato seguente per xUnit. Assicurarsi che sia presente uno spazio tra il TestCategory nome e .[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, scegliere uno o più test in Esplora Test. Scegliere Aggiungi a playlist>Nuova playlist dal menu di scelta rapida.

Create a playlist

La playlist viene aperta in una nuova scheda Esplora test. È possibile usare questa playlist una sola volta e quindi eliminarla oppure fare clic sul pulsante Salva sulla barra degli strumenti della finestra della playlist, quindi selezionare un nome e un percorso per salvare la playlist.

Playlist opens in separate test explorer tab

Per creare una playlist, scegliere uno o più test in Esplora Test. Fare clic con il pulsante destro del mouse e scegliere Aggiungi a playlist>Nuova playlist.

Per aprire una playlist, scegliere l'icona della playlist sulla barra degli strumenti di Visual Studio, quindi scegliere un file di playlist salvato in precedenza dal menu.

Per modificare una playlist, è possibile fare clic con il pulsante destro del mouse su qualsiasi test e usare le opzioni di menu per aggiungerla o rimuoverla da una playlist.

A partire da Visual Studio 2019 versione 16.7, è possibile scegliere il pulsante Modifica sulla barra degli strumenti. Le caselle di controllo verranno visualizzate accanto ai test che mostrano quali test sono inclusi ed esclusi nella playlist. Modificare i gruppi in base alle esigenze.

Edit Playlist button

È anche possibile selezionare o deselezionare le caselle dei 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 inserisce un segno di spunta 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 altre informazioni sulle regole, salvare la playlist con il pulsante Salva sulla barra degli strumenti e aprire il file con estensione playlist creato sul disco. Questo file elenca tutte le regole e i singoli test che costituiscono una playlist.

Playlist xml file

Se vuoi creare una playlist per i tratti, usa il formato seguente per MSTest.

<Playlist Version="2.0">
	<Rule Name="Includes" Match="Any">
		<Property Name="Trait" Value="SchemaUpdateBasic" />
	</Rule>
</Playlist>

Usare il formato seguente per xUnit. Assicurarsi che sia presente uno spazio tra il TestCategory nome e .[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

I gruppi sono disponibili anche come colonne in Esplora test, insieme a Tratti, Analisi dello stack, Messaggio di errore e Nome completo. La maggior parte delle colonne non è visibile per impostazione predefinita ed è possibile personalizzare quali colonne visualizzare e l'ordine in cui sono disposte.

Screenshot of the Visual Studio Test Explorer showing a menu with Columns selected and a sub-menu with Duration, Traits, and Error Message selected.

Filtrare, ordinare e ridisporre le colonne di test

Le colonne possono essere filtrate, ordinate e ridisposte.

  • Per filtrare in base a tratti specifici, fare clic sull'icona del filtro nella parte superiore della colonna Tratti.

    Column filter

  • Per cambiare l'ordine delle colonne, fare clic su un'intestazione di colonna e trascinarla a sinistra o a destra.

  • Per ordinare una colonna, fare clic su un'intestazione di colonna. Non tutte le colonne possono essere ordinate. È anche possibile ordinare in base a una colonna secondaria tenendo premuto il tasto MAIUSC e facendo clic su un'intestazione di colonna aggiuntiva.

    Column sort

Colonne di Esplora test

I gruppi sono disponibili anche come colonne in Esplora test, insieme a Tratti, Analisi dello stack, Messaggio di errore e Nome completo. La maggior parte delle colonne non è visibile per impostazione predefinita ed è possibile personalizzare quali colonne visualizzare e l'ordine in cui sono disposte.

Screenshot of the Visual Studio Test Explorer showing a menu with Columns selected and a sub-menu with Duration, Traits, and Error Message selected.

Filtrare, ordinare e ridisporre le colonne di test

Le colonne possono essere filtrate, ordinate e ridisposte.

  • Per filtrare in base a tratti specifici, fare clic sull'icona del filtro nella parte superiore della colonna Tratti.

    Column filter

  • Per cambiare l'ordine delle colonne, fare clic su un'intestazione di colonna e trascinarla a sinistra o a destra.

  • Per ordinare una colonna, fare clic su un'intestazione di colonna. Non tutte le colonne possono essere ordinate. È anche possibile ordinare in base a una colonna secondaria tenendo premuto il tasto MAIUSC e facendo clic su un'intestazione di colonna aggiuntiva.

    Column sort

Eseguire ricerche e applicare filtri nell'elenco dei test

È anche possibile usare i filtri di ricerca di Esplora Test per limitare i metodi di test nei progetti che vengono visualizzati ed eseguiti.

Quando si digita una stringa nella casella di ricerca Esplora test e si preme INVIO, l'elenco dei test viene filtrato per visualizzare solo i test i cui nomi completi contengono la stringa.

Per filtrare in base a un criterio diverso:

  1. Aprire l'elenco a discesa a destra della casella di ricerca.

  2. Scegliere un nuovo criterio.

  3. Immettere il valore di filtro tra virgolette. Se si vuole cercare una corrispondenza esatta per la stringa anziché una corrispondenza di contenimento, usare il segno di uguale (=) invece dei due punti (:).

Filter tests in Test Explorer

Filter tests in Test Explorer

Nota

Le ricerche non fanno distinzione tra maiuscole e minuscole e consentono di trovare la corrispondenza tra la stringa specificata e qualsiasi parte del valore del criterio.

Qualifier Descrizione
Stato Cerca le corrispondenze nei nomi delle categorie di Esplora test: Test non superati, Test ignorati, Test superati.
Tratti Cerca le corrispondenze sia nel valore sia nella categoria dei tratti. La sintassi per specificare i valori e le categorie dei tratti è definita dal framework di unit test.
Nome completo Cerca le corrispondenze nel nome completo di spazi dei nomi, classi e 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 negli spazi dei nomi di test.
Classe Cerca le corrispondenze nei nomi delle classi di test.

Per escludere un subset dei risultati di un filtro, usare 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 di unit test

È possibile determinare la quantità di codice del prodotto sottoposta effettivamente a test dagli unit test usando lo strumento per il code coverage di Visual Studio disponibile nell'edizione Visual Studio Enterprise. È possibile eseguire il code coverage su test selezionati oppure su tutti i test in una soluzione.

Per eseguire il code coverage per i metodi di test in una soluzione:

  • Fare clic con il pulsante destro del mouse in Esplora test e selezionare Analizza code coverage per i test selezionati

La finestra Risultati code coverage visualizza la percentuale di blocchi di codice del prodotto esaminati in base a riga, funzione, classe, spazio dei nomi e modulo.

Per altre informazioni, vedere Usare la funzionalità code coverage per determinare la quantità di codice testato.

Tasti di scelta rapida per i test

I test possono essere eseguiti da Esplora test facendo clic con il pulsante destro del mouse sull'editor di codice in un test e selezionando Esegui test o usando i collegamenti predefiniti di Esplora test in Visual Studio. Alcune combinazioni di tasti sono basate sul contesto. Ciò significa che vengono eseguiti, eseguono test di debug o di profilo 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, vengono eseguiti tutti i test presenti nella classe. Lo stesso si verifica 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, poiché i test vengono solo definiti nelle classi astratte ma non ne viene creata l'istanza. Per eseguire i test nelle classi astratte, creare una classe che deriva dalla classe astratta.

Testare il segnale audio

Esplora test può riprodurre un suono al termine di un'esecuzione di test. Ci sono due suoni: un suono per indicare che l'esecuzione del test ha avuto esito positivo con tutti i test superati e un secondo suono per indicare l'esecuzione del test completata con almeno un test non superato. Puoi configurare questi suoni nella finestra di dialogo audio predefinita di Windows 11. Questa funzionalità è disponibile a partire da Visual Studio 2019 Update 16.9 Preview 3.

  1. Aprire la finestra di dialogo predefinita audio di Windows 11.
  2. Passare alla scheda Suoni .
  3. Trovare la categoria Microsoft Visual Studio . Scegliere i suoni Test Run Succeeded (Esecuzione test completata) o Test Run Failed (Esecuzione test non riuscita ) per selezionare i suoni preimpostati o passare al proprio file audio.
    Windows 11 sound dialog