Domande frequenti su Esplora test di Visual Studio
Individuazione dei test dinamici
Esplora Test non individua i test definiti in modo dinamico. (Ad esempio, teorie, adattatori personalizzati, tratti personalizzati, #ifdefs e così via) Come è possibile individuare questi test?
Compilare il progetto per eseguire l'individuazione basata su assembly.
L'individuazione dei test in tempo reale è l'individuazione dei test in base all'origine. Non è possibile individuare test che usano teorie, adattatori personalizzati, tratti personalizzati, #ifdef
istruzioni e altro ancora perché sono definiti in fase di esecuzione. Per l'individuazione accurata di questi test è necessaria una compilazione. In Visual Studio 2017 versione 15.6 e versioni successive l'individuazione basata su assembly (agente di individuazione tradizionale) viene eseguita solo dopo le compilazioni. Questa impostazione significa che l'individuazione dei test in tempo reale consente di individuare il maggior numero possibile di test durante la modifica e che l'individuazione basata su assembly consente la visualizzazione dei test definiti in modo dinamico dopo una compilazione. L'individuazione dei test in tempo reale migliora la velocità di risposta, consentendo tuttavia di ottenere risultati precisi e completi dopo una compilazione.
'+' (segno più) di Esplora test
Cosa significa il simbolo '+' (più) visualizzato nella prima riga di Esplora test?
Il simbolo '+' (più) indica che possono essere individuati ulteriori test dopo una compilazione quando viene eseguita l'individuazione basata su assembly. Il simbolo viene visualizzato se nel progetto vengono rilevati test definiti in modo dinamico.
Individuazione dei test in tempo reale
I test vengono ora visualizzati in Esplora test durante la digitazione senza dover compilare il progetto. Cosa è cambiato?
Questa funzionalità è denominata individuazione dei test in tempo reale. Usa un analizzatore Roslyn per trovare i test e popolare Esplora test in tempo reale, senza che sia necessario compilare il progetto. Per altre informazioni sul comportamento dell'individuazione dei test per i test definiti in modo dinamico, ad esempio teorie o tratti personalizzati, vedere Individuazione dei test dinamici.
Compatibilità dell'individuazione dei test in tempo reale
Quali linguaggi e framework di test possono usare l'individuazione dei test in tempo reale?
L'individuazione dei test in tempo reale funziona solo per i linguaggi gestiti (C# e Visual Basic), perché viene compilata con il compilatore Roslyn. Per il momento, l'individuazione dei test in tempo reale funziona solo per i framework xUnit, NUnit e MSTest.
Log di Esplora test
Come è possibile attivare i log per Esplora test?
Passare a Strumenti>Opzioni>Test e individuare la sezione Registrazione.
Individuazione dei test UWP
Perché i test nei progetti UWP vengono individuati solo dopo la distribuzione dell'app?
I test UWP usano un runtime diverso come destinazione quando l'app viene distribuita. Questo significa che per trovare i test in modo accurato per i progetti UWP non è sufficiente compilare il progetto, ma è anche necessario distribuirlo.
Ordinamento di Esplora test
Come funziona l'ordinamento dei risultati di test nella visualizzazione gerarchia?
Nella visualizzazione gerarchia i test sono disposti in ordine alfabetico anziché in base al risultato. Il gruppo precedente in base alle impostazioni ha ordinato i risultati dei test in base al risultato e quindi alfabeticamente. È comunque possibile abilitare l'ordinamento in base al risultato facendo clic con il pulsante destro del mouse sull'intestazione di colonna in Esplora test, abilitando la colonna Stato e quindi facendo clic sull'intestazione della colonna Stato per applicare l'ordinamento a tale colonna. È possibile inviare commenti e suggerimenti sulla progettazione in questo problema GitHub.
Visualizzazione gerarchia in Esplora test
Nella visualizzazione gerarchia, accanto ai raggruppamenti dei nodi padre vengono visualizzate icone per i test superati, non superati, ignorati e non eseguiti. Cosa significano queste icone?
Le icone accanto ai raggruppamenti Progetto, Spazio dei nomi e Classe indicano lo stato dei test all'interno di tale raggruppamento. Vedi la tabella seguente.
Ricerca per percorso file
Nella casella di ricerca Esplora test non è più disponibile un filtro per il percorso file.
Il filtro per il percorso file nella casella di ricerca Esplora test è stato rimosso in Visual Studio 2017 versione 15.7. Questa funzionalità era poco usata ed Esplora Test può recuperare i metodi di test più velocemente se la funzionalità viene esclusa. Se questa modifica interrompe il flusso di sviluppo, comunicarlo aggiungendo un commento nella community degli sviluppatori.
Rimuovere le interfacce non documentate
Alcune API correlate ai test non sono più presenti in Visual Studio 2019. Cosa è cambiato?
In Visual Studio 2019, verranno rimosse alcune API di finestra di test in precedenza contrassegnate come pubbliche, ma mai documentate ufficialmente. Sono state contrassegnate come "deprecate" in Visual Studio 2017 per avvisare tempestivamente chi gestisce le estensioni. In base a quanto osservato, sono pochissime le estensioni che hanno rilevato queste API e hanno dipendenze dalle stesse. Sono incluse IGroupByProvider
, IGroupByProvider<T>
, KeyComparer
, ISearchFilter
, ISearchFilterToken
, ISearchToken
e SearchFilterTokenType
. Se questa modifica interessa l'estensione in uso, segnalare un bug in Developer Community.
Riferimento NuGet all'adattatore di test
In Visual Studio 2017 versione 15.8 i test vengono individuati, ma non eseguiti.
Tutti i progetti di test devono includere il riferimento NuGet all'adattatore di test .NET nel relativo file csproj. In caso contrario, viene visualizzato l'output di test seguente nel progetto se viene avviata l'individuazione da parte di un'estensione dell'adattatore di test dopo una compilazione o se l'utente tenta di eseguire i test selezionati:
Il progetto {} di test non fa riferimento ad alcuna scheda NuGet .NET. L'individuazione o l'esecuzione dei test potrebbe non funzionare per questo progetto. È consigliabile fare riferimento agli adattatori di test NuGet in ogni progetto di test .NET nella soluzione.
Invece di usare le estensioni dell'adattatore di test, i progetti devono usare i pacchetti NuGet dell'adattatore di test. Questo requisito migliora notevolmente le prestazioni e causa meno problemi con l'integrazione continua. Altre informazioni sulla deprecazione dell'estensione dell'adattatore di test .NET sono disponibili nelle note sulla versione.
Oggetto TestContainer UWP non trovato
I test UWP non vengono più eseguiti in Visual Studio 2017 versione 15.7 e successive.
I progetti di test UWP recenti specificano una proprietà di compilazione della piattaforma di test che consente di migliorare le prestazioni durante l'identificazione delle app di test. In un progetto di test UWP inizializzato prima di Visual Studio versione 15.7 è possibile che venga visualizzato questo errore in Output>Test:
System.AggregateException: si sono verificati uno o più errori. >--- System.InvalidOperationException: Il testContainer seguente non è stato trovato {} in Microsoft.VisualStudio.TestWindow.Controller.TestContainerProvider <GetTestContainerAsync>d__61.MoveNext()
Per correggere l'errore:
- Aggiornare la proprietà di compilazione del progetto di test usando il codice seguente:
<UnitTestPlatformVersion Condition="'$(UnitTestPlatformVersion)' == ''">$(VisualStudioVersion)</UnitTestPlatformVersion>
- Aggiornare la versione SDK di TestPlatform usando il codice seguente:
<SDKReference Include="TestPlatform.Universal, Version=$(UnitTestPlatformVersion)" />
Uso delle funzionalità di anteprima
In Visual Studio 2019 è possibile acconsentire esplicitamente alle funzionalità di anteprima in Opzioni > strumenti > Funzionalità di anteprima dell'ambiente>.
Contenuto correlato
- Microsoft.VisualStudio.TestTools.UnitTesting
- Create and run unit tests for existing code (Creare ed eseguire unit test per il codice esistente)
- Eseguire unit test del codice
- Domande frequenti su Live Unit Testing