Usare Microsoft.Testing.Platform con dotnet test
Questo articolo descrive come usare dotnet test
per eseguire i test quando si usa Microsoft.Testing.Platform
e le varie opzioni disponibili per configurare l'output di MSBuild generato durante l'esecuzione di test tramite Microsoft.Testing.Platform.
Questo articolo illustra come usare dotnet test
per eseguire tutti i test in una soluzione (*.sln) che usa Microsoft.Testing.Platform
.
Integrazione di dotnet test
Il comando dotnet test è un modo per eseguire test da soluzioni, progetti o assembly già compilati. Microsoft.Testing.Platform si collega a questa infrastruttura per offrire un modo unificato per eseguire i test, soprattutto quando si esegue la migrazione da VSTest a Microsoft.Testing.Platform
.
Integrazione dotnet test
- Modalità VSTest
Microsoft.Testing.Platform
offre un livello di compatibilità con (VSTest Bridge) per lavorare con dotnet test
senza problemi.
I test possono essere eseguiti eseguendo:
dotnet test
Questo livello esegue test tramite VSTest e si integra con esso a livello di adattatore del framework di test VSTest.
dotnet test
- Modalità Microsoft.Testing.Platform
Per impostazione predefinita, VSTest viene usato per eseguire i test di Microsoft.Testing.Platform
. È possibile abilitare una Microsoft.Testing.Platform
completa specificando l'impostazione <TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport>
nel file di progetto. Questa impostazione disabilita VSTest e, grazie alla dipendenza transitiva dal pacchetto NuGet Microsoft.Testing.Platform.MSBuild, esegue direttamente tutti i progetti di test basati su Microsoft.Testing.Platform
nella soluzione. Funziona senza problemi se si supera un progetto di test diretto Microsoft.Testing.Platform
.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<IsPackable>false</IsPackable>
<IsTestProject>true</IsTestProject>
<OutputType>Exe</OutputType>
<EnableMSTestRunner>true</EnableMSTestRunner>
<!-- Add this to your project file. -->
<TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport>
</PropertyGroup>
<!-- ... -->
</Project>
In questa modalità, è possibile fornire parametri aggiuntivi utilizzati per chiamare l'applicazione di test in uno dei modi seguenti:
Microsoft.Testing.Platform
A partire dalla versione 1.4 (inclusa in MSTest versione 3.6), è possibile aggiungere opzioni dopo il trattino--
doppio nella riga di comando:dotnet test -- --minimum-expected-tests 10
Utilizzando la proprietà MSBuild
TestingPlatformCommandLineArguments
sulla riga di comando:dotnet test -p:TestingPlatformCommandLineArguments="--minimum-expected-tests 10"
O nel file di progetto:
<PropertyGroup> ... <TestingPlatformCommandLineArguments>--minimum-expected-tests 10</TestingPlatformCommandLineArguments> </PropertyGroup>
Opzioni aggiuntive di MSBuild
L'integrazione di MSBuild fornisce opzioni che è possibile specificare nel file di progetto o attraverso proprietà globali sulla riga di comando, ad esempio -p:TestingPlatformShowTestsFailure=true
.
Queste sono le opzioni disponibili:
Mostra un errore per test
Per impostazione predefinita, gli errori di test vengono riepilogati in un file .log e un singolo errore per progetto di test viene segnalato a MSBuild.
Per visualizzare gli errori per ogni test non riuscito, specificare -p:TestingPlatformShowTestsFailure=true
sulla riga di comando o aggiungere la proprietà <TestingPlatformShowTestsFailure>true</TestingPlatformShowTestsFailure>
al file di progetto.
Nella riga di comando:
dotnet test -p:TestingPlatformShowTestsFailure=true
Oppure nel file di progetto:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<IsPackable>false</IsPackable>
<IsTestProject>true</IsTestProject>
<OutputType>Exe</OutputType>
<EnableMSTestRunner>true</EnableMSTestRunner>
<TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport>
<!-- Add this to your project file. -->
<TestingPlatformShowTestsFailure>true</TestingPlatformShowTestsFailure>
</PropertyGroup>
<!-- ... -->
</Project>
Mostra output completo della piattaforma
Per impostazione predefinita, tutti gli output della console scritti dall'eseguibile di test sottostante vengono acquisiti e nascosti all'utente. Sono inclusi il banner, le informazioni sulla versione e le informazioni sul test formattato.
Per visualizzare queste informazioni insieme all'output di MSBuild, usa <TestingPlatformCaptureOutput>false</TestingPlatformCaptureOutput>
.
Questa opzione non influisce sul modo in cui il framework di test acquisisce l'output utente scritto da Console.WriteLine
o altri modi simili per scrivere nella console.
Nella riga di comando:
dotnet test -p:TestingPlatformCaptureOutput=false
Oppure nel file di progetto:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<IsPackable>false</IsPackable>
<IsTestProject>true</IsTestProject>
<OutputType>Exe</OutputType>
<EnableMSTestRunner>true</EnableMSTestRunner>
<TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport>
<!-- Add this to your project file. -->
<TestingPlatformCaptureOutput>false</TestingPlatformCaptureOutput>
</PropertyGroup>
<!-- ... -->
</Project>