Panoramica di Microsoft.Testing.Platform
Microsoft.Testing.Platform è un'alternativa leggera e portabile a VSTest per l'esecuzione di test in tutti i contesti, inclusi pipeline di integrazione continua (CI), interfaccia della riga di comando, Esplora test di Visual Studio ed Esplora testo di VS Code. Microsoft.Testing.Platform è incorporato direttamente nei progetti di test e non sono presenti altre dipendenze da app, come ad esempio vstest.console
o dotnet test
per eseguire i test.
Microsoft.Testing.Platform
è open source. È possibile trovare il codice Microsoft.Testing.Platform
nel repository microsoft/testfx di GitHub.
Framework di test supportati
- MSTest. In MSTest il supporto di
Microsoft.Testing.Platform
viene offerto tramite lo strumento di esecuzione MSTest. - NUnit: lavori in corso, per altre informazioni, vedere Microsoft Testing Platform per NUnit.
- xUnit: lavori in corso, per altre informazioni, vedere Microsoft Testing Platform per xUnit.
Eseguire i test e il debug
I progetti di test di Microsoft.Testing.Platform
vengono compilati come eseguibili che possono essere eseguiti (o sottoposti a debug) direttamente. Non sono disponibili console o comandi aggiuntivi per l'esecuzione dei test. In caso di errore, l'app viene chiusa con un codice di uscita diverso da zero, come avviene nella maggior parte degli eseguibili. Per altre informazioni sui codici di uscita noti, vedere Codici di uscita di Microsoft.Testing.Platform.
Importante
Per impostazione predefinita, Microsoft.Testing.Platform
raccoglie i dati di telemetria. Per altre informazioni e opzioni relative al rifiuto esplicito, vedere Dati di telemetria di Microsoft.Testing.Platform.
Pubblicare il progetto di test usando dotnet publish
ed eseguire direttamente l'app è un altro modo per eseguire i test. Ad esempio, l'esecuzione di ./Contoso.MyTests.exe
. In alcuni scenari è anche possibile usare dotnet build
per produrre l'eseguibile, ma possono esserci casi limite da considerare, come l'AOT nativo.
Utilizzare dotnet run
Il comando dotnet run
può essere usato per compilare ed eseguire il progetto di test. Questo è il modo più semplice, anche se a volte più lento, per eseguire i test. L'uso di dotnet run
è pratico quando si modificano ed eseguono i test in locale, perché garantisce che il progetto di test venga ricompilato quando necessario. dotnet run
troverà automaticamente il progetto nella cartella corrente.
dotnet run --project Contoso.MyTests
Per altre informazioni su dotnet run
, vedere dotnet run.
Utilizzare dotnet exec
Il comando dotnet exec
o dotnet
viene usato per eseguire un progetto di test già compilato. Questa è un'alternativa all'esecuzione diretta dell'applicazione. dotnet exec
richiede il percorso della DLL del progetto di test compilato.
dotnet exec Contoso.MyTests.dll
oppure
dotnet Contoso.MyTests.dll
Nota
Specificando il percorso dell'eseguibile del progetto di test (*.exe) si ottiene l'errore:
Error:
An assembly specified in the application dependencies manifest
(Contoso.MyTests.deps.json) has already been found but with a different
file extension:
package: 'Contoso.MyTests', version: '1.0.0'
path: 'Contoso.MyTests.dll'
previously found assembly: 'S:\t\Contoso.MyTests\bin\Debug\net8.0\Contoso.MyTests.exe'
Per altre informazioni su dotnet exec
, vedere dotnet exec.
Utilizzare dotnet test
.
Microsoft.Testing.Platform
offre un livello di compatibilità con vstest.console.exe
e dotnet test
che garantisce l'esecuzione dei test come prima, pur abilitando nuovi scenari di esecuzione.
dotnet test Contoso.MyTests.dll
Opzioni
L'elenco seguente descrive solo le opzioni della piattaforma. Per visualizzare le opzioni specifiche portate da ogni estensione, fare riferimento alla pagina della documentazione dell'estensione o usare l'opzione --help
.
--diagnostic
Abilita la registrazione diagnostica. Il livello di log predefinito è Trace
. Il file viene scritto nella directory di output con il formato del nome seguente, log_[MMddHHssfff].diag
.
--diagnostic-filelogger-synchronouswrite
Forza il logger di file integrato a scrivere i log in modo sincrono. Utile per gli scenari in cui non si vuole perdere nessuna voce di registro (se il processo si arresta in modo anomalo). In questo modo viene rallentata l'esecuzione dei test.
--diagnostic-output-directory
La directory di output della registrazione diagnostica. Se non specificato, il file viene generato nella directory predefinita TestResults.
--diagnostic-output-fileprefix
Il prefisso del nome del file di log. Il valore predefinito è "log_"
.
--diagnostic-verbosity
Definisce il livello di dettaglio quando viene usata l'opzione --diagnostic
. I valori disponibili sono Trace
, Debug
, Information
, Warning
, Error
o Critical
.
--help
Stampa le istruzioni di utilizzo del comando.
-ignore-exit-code
Consente di ignorare alcuni codici di uscita diversi da zero e di restituirli come 0
. Per altre informazioni, vedere Ignorare codici di uscita specifici.
--info
Visualizza informazioni avanzate sull'applicazione di test .NET, ad esempio:
- La piattaforma.
- L’ambiente.
- Ogni provider della riga di comando registrato, ad esempio,
name
,version
,description
eoptions
. - Ogni strumento registrato, ad esempio,
command
,name
,version
,description
e tutti i provider della riga di comando.
Questa funzionalità viene usata per comprendere le estensioni che registrano la stessa opzione della riga di comando o le modifiche alle opzioni disponibili tra più versioni di un'estensione (o della piattaforma).
--list-tests
Elencare i test disponibili. I test non verranno eseguiti.
--minimum-expected-tests
Specifica il numero minimo di test che devono essere eseguiti. Per impostazione predefinita, è previsto che venga eseguito almeno un test.
--results-directory
Directory in cui verranno inseriti i risultati del test. Se la directory specificata non esiste, viene creata. Il valore predefinito è TestResults
nella directory che contiene l'applicazione di test.
Vedi anche
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per