Condividi tramite


test dotnet con Microsoft.Testing.Platform (MTP)

Questo articolo si applica a: ✔️ .NET 10 SDK e versioni successive

Nome

dotnet test - Driver di test .NET usato per eseguire unit test con Microsoft.Testing.Platform.

Synopsis

dotnet test
    [--project <PROJECT_PATH>]
    [--solution <SOLUTION_PATH>]
    [--test-modules <EXPRESSION>] 
    [--root-directory <ROOT_PATH>]
    [--max-parallel-test-modules <NUMBER>]
    [-a|--arch <ARCHITECTURE>]
    [-c|--configuration <CONFIGURATION>]
    [-f|--framework <FRAMEWORK>]
    [--os <OS>]
    [-r|--runtime <RUNTIME_IDENTIFIER>]
    [-v|--verbosity <LEVEL>]
    [--no-build]
    [--no-restore]
    [--no-ansi]
    [--no-progress]
    [--output <VERBOSITY_LEVEL>]
    [--no-launch-profile]
    [--no-launch-profile-arguments]
    [<args>...]

dotnet test -h|--help

Description

Con Microsoft Testing Platform, dotnet test funziona più velocemente rispetto a VSTest. Gli argomenti correlati al test non sono più fissi, perché sono associati alle estensioni registrate nei progetti di test. MTP supporta inoltre un filtro globbing durante l'esecuzione dei test. Per altre informazioni, vedere Microsoft.Testing.Platform.

Avvertimento

Quando Microsoft.Testing.Platform è consenso esplicito tramite global.json, dotnet test prevede che tutti i progetti di test usino Microsoft.Testing.Platform. Si tratta di un errore se uno dei progetti di test usa VSTest.

Ripristino implicito

Non è necessario eseguire dotnet restore perché viene eseguito in modo implicito da tutti i comandi che richiedono un ripristino, ad esempio dotnet new, dotnet build, dotnet run, dotnet test, dotnet publish e dotnet pack. Per disabilitare il ripristino implicito, usare l'opzione --no-restore.

Il comando dotnet restore è ancora utile in alcuni scenari in cui ha senso eseguire un ripristino esplicito, ad esempio le compilazioni di integrazione continua in Azure DevOps Services o in sistemi di compilazione che richiedono il controllo esplicito quando viene eseguito il ripristino.

Per informazioni su come gestire i feed NuGet, vedere la dotnet restore documentazione.

Options

Annotazioni

È possibile usare solo una delle opzioni seguenti alla volta: --project, --solutiono --test-modules. Queste opzioni non possono essere combinate. Inoltre, quando si usa --test-modules, non è possibile specificare --arch, --configuration, --framework, --oso --runtime. Queste opzioni non sono rilevanti per un modulo già compilato.

  • --project <PROJECT_PATH>

    Specifica il percorso del file di progetto da eseguire: nome della cartella o percorso completo. Se non specificato, per impostazione predefinita il percorso corrisponde alla directory corrente.

  • --solution <SOLUTION_PATH>

    Specifica il percorso del file della soluzione da eseguire (nome della cartella o percorso completo). Se non specificato, per impostazione predefinita il percorso corrisponde alla directory corrente.

  • --test-modules <EXPRESSION>

    Filtra i moduli di test usando il globbing dei file in .NET. Verranno eseguiti solo i test appartenenti a tali moduli di test. Per altre informazioni ed esempi su come usare il globbing di file in .NET, vedere file globbing.

  • --root-directory <ROOT_PATH>

    Specifica la directory radice dell'opzione --test-modules. Può essere usato solo con l'opzione --test-modules.

  • --max-parallel-test-modules <NUMBER>

    Specifica il numero massimo di moduli di test che possono essere eseguiti in parallelo. Il valore predefinito è Environment.ProcessorCount.

  • -a|--arch <ARCHITECTURE>

    Specifica l'architettura di destinazione. Si tratta di una sintassi abbreviata per l'impostazione dell'identificatore di runtime (RID), in cui il valore fornito viene combinato con il RID predefinito. Ad esempio, in un computer win-x64, specificando --arch x86 si imposta il RID su win-x86. Se si usa questa opzione, non usare l'opzione -r|--runtime. Disponibile a partire da .NET 6 Preview 7.

  • -c|--configuration <CONFIGURATION>

    Definisce la configurazione di compilazione. Il valore predefinito per la maggior parte dei progetti è Debug, ma è possibile eseguire l'override delle impostazioni di configurazione della compilazione nel progetto.

  • -f|--framework <FRAMEWORK>

    Moniker framework di destinazione (TFM) del framework di destinazione per cui eseguire i test. Il framework di destinazione deve essere specificato anche nel file di progetto.

  • --os <OS>

    Specifica il sistema operativo di destinazione. Si tratta di una sintassi abbreviata per l'impostazione dell'identificatore di runtime (RID), in cui il valore fornito viene combinato con il RID predefinito. Ad esempio, in un computer win-x64, specificando --os linux si imposta il RID su linux-x64. Se si usa questa opzione, non usare l'opzione -r|--runtime. Disponibile a partire da .NET 6.

  • -r|--runtime <RUNTIME_IDENTIFIER>

    Runtime di destinazione per cui eseguire i test.

    A partire da .NET SDK 7 è disponibile la forma breve -r.

    Annotazioni

    L'esecuzione di test per una soluzione con una proprietà globale RuntimeIdentifier (in modo esplicito o tramite --arch, --runtimeo --os) non è supportata. Impostare RuntimeIdentifier invece su un singolo livello di progetto.

  • -v|--verbosity <LEVEL>

    Imposta il livello di dettaglio del comando. I valori consentiti sono q[uiet], m[inimal], n[ormal], d[etailed] e diag[nostic]. Per altre informazioni, vedere LoggerVerbosity.

  • --no-build

    Specifica che il progetto di test non viene compilato prima dell'esecuzione. Imposta anche in modo implicito il flag --no-restore.

  • --no-restore

    Specifica che un ripristino implicito non viene eseguito durante l'esecuzione del comando.

  • --no-ansi

    Disabilita l'output dei caratteri di escape ANSI sullo schermo.

  • --no-progress

    Disabilita la creazione di report sullo schermo.

  • --output <VERBOSITY_LEVEL>

    Specifica il livello di dettaglio dell'output durante la creazione di report dei test. I valori validi sono Normal e Detailed. Il valore predefinito è Normal.

  • --no-launch-profile

    Non tentare di usare launchSettings.json per configurare l'applicazione. Per impostazione predefinita, launchSettings.json viene usato , che può applicare variabili di ambiente e argomenti della riga di comando al file eseguibile di test.

  • --no-launch-profile-arguments

    Non usare gli argomenti specificati da commandLineArgs nel profilo di avvio per eseguire l'applicazione.

  • --property:<NAME>=<VALUE>

    Imposta una o più proprietà MSBuild. Specificare più proprietà ripetendo l'opzione :

    --property:<NAME1>=<VALUE1> --property:<NAME2>=<VALUE2>
    

    Il formato -p breve può essere usato per --property. Lo stesso vale per /property:property=value e la sua forma breve è /p. Altre informazioni sugli argomenti disponibili sono disponibili nella documentazione di dotnet msbuild.

  • -?|-h|--help

    Stampa una descrizione di come usare il comando .

  • args

    Specifica argomenti aggiuntivi da passare alle applicazioni di test. Per separare più argomenti usare uno spazio. Per altre informazioni ed esempi su cosa passare, vedere panoramica di Microsoft.Testing.Platform e estensioni Microsoft.Testing.Platform.

    Suggerimento

    Per specificare argomenti aggiuntivi per progetti specifici, usare la proprietà TestingPlatformCommandLineArguments MSBuild.

Annotazioni

Per abilitare la registrazione della traccia in un file, usare la variabile di ambiente DOTNET_CLI_TEST_TRACEFILE per specificare il percorso del file di traccia.

Esempi

  • Eseguire i test nel progetto o nella soluzione nella directory corrente:

    dotnet test
    
  • Eseguire i test nel progetto TestProject:

    dotnet test --project ./TestProject/TestProject.csproj
    
  • Eseguire i test nella soluzione TestProjects:

    dotnet test --solution ./TestProjects/TestProjects.sln
    
  • Eseguire i test usando l'assembly TestProject.dll:

    dotnet test --test-modules "**/bin/**/Debug/net10.0/TestProject.dll"
    
  • Eseguire i test usando TestProject.dll assembly con la directory radice:

    dotnet test --test-modules "**/bin/**/Debug/net10.0/TestProject.dll" --root-directory "c:\code"
    
  • Eseguire i test nella directory corrente con code coverage:

    dotnet test --coverage
    
  • Eseguire i test nel progetto TestProject, specificando l'argomento -bl (log binario) per msbuild:

    dotnet test --project ./TestProject/TestProject.csproj -bl
    
  • Eseguire i test nel progetto TestProject, impostando la proprietà DefineConstants di MSBuild su DEV:

    dotnet test --project ./TestProject/TestProject.csproj -p:DefineConstants="DEV"
    

Vedere anche