Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Microsoft.Testing.Platform è un'alternativa leggera e portabile a VSTest per l'esecuzione di test in tutti i contesti, tra cui pipeline di integrazione continua (CI), interfaccia a riga di comando, Esplora test di Visual Studio ed Esplora test di VS Code. Microsoft.Testing.Platform è incorporato direttamente nei progetti di test e non sono presenti altre dipendenze dell'app, ad esempio vstest.console o dotnet test necessarie per eseguire i test.
Consiglio
Per assistenza nella scelta tra VSTest e Microsoft.Testing.Platform, iniziare con Panoramica delle piattaforme di test.
Usare questo articolo quando si è già deciso di usare Microsoft.Testing.Platform e si vuole comprendere il modello, le funzionalità e il comportamento operativo.
Microsoft.Testing.Platform è open source. È possibile trovare Microsoft.Testing.Platform codice nel repository microsoft/testfx GitHub.
Inizia qui
Usare il percorso seguente, in base alle esigenze successive:
- Eseguire ed eseguire test di debug dall'interfaccia della riga di comando, dall'IDE o dall'integrazione continua: eseguire ed eseguire test di debug
- Comprendere il comportamento della piattaforma nell'interfaccia della riga di comando: Eseguire il test con
dotnet test - Trovare le opzioni dell'interfaccia della riga di comando della piattaforma e dell'estensione in un'unica posizione: Informazioni di riferimento sulle opzioni dell'interfaccia della riga di comando di Microsoft.Testing.Platform
- Configurare gli strumenti di esecuzione del framework: eseguire test con il supporto di MSTest o Microsoft.Testing.Platform in NUnit (NUnit runner)
- Eseguire la migrazione di un'installazione di VSTest esistente: eseguire la migrazione da VSTest a Microsoft.Testing.Platform
- Aggiungere funzionalità di diagnostica, copertura e creazione di report: funzionalità di Microsoft.Testing.Platform
- Creare un'estensione personalizzata: architettura Microsoft.Testing.Platform, punti di estensione e servizi
Pilastri di Microsoft.Testing.Platform
Questa nuova piattaforma di test si basa sull'esperienza del team di test .NET Developer Experience Testing e mira a risolvere le sfide riscontrate dal rilascio di .NET Core nel 2016. Anche se esiste un elevato livello di compatibilità tra .NET Framework e .NET Core/.NET, alcune funzionalità chiave come il sistema plug-in e i nuovi possibili fattori di forma delle compilazioni .NET hanno reso complessa l'evoluzione o il supporto completo della nuova funzionalità di runtime con la piattaforma VSTest corrente.
I principali fattori di guida per l'evoluzione della nuova piattaforma di test sono descritti in dettaglio nel modo seguente:
determinismo: garantire che l'esecuzione degli stessi test in contesti diversi (locale, CI) produca lo stesso risultato. Il nuovo runtime non si basa sulla reflection o su altre funzionalità di runtime .NET dinamiche per coordinare un'esecuzione di test.
trasparenza del runtime: il runtime di test non interferisce con il codice del framework di test, non crea contesti isolati come
AppDomainoAssemblyLoadContexte non usa i resolver di reflection o di assembly personalizzati.la registrazione in fase di compilazione delle estensioni: le estensioni, ad esempio framework di test e estensioni in/out-of-process, vengono registrate durante la fase di compilazione per garantire determinismo e per facilitare il rilevamento delle incoerenze.
Zero dipendenze: Il core della piattaforma è un singolo assembly .NET,
Microsoft.Testing.Platform.dll, che non ha dipendenze diverse dai runtime supportati.Hostable: il runtime di test può essere ospitato in qualsiasi applicazione .NET. Mentre un'applicazione console viene comunemente usata per eseguire i test, è possibile creare un'applicazione di test in qualsiasi tipo di applicazione .NET. In questo modo è possibile eseguire test all'interno di contesti speciali, ad esempio dispositivi o browser, in cui potrebbero esserci limitazioni.
Supporta tutti i fattori di forma .NET: supportare fattori di forma attuali e futuri .NET, tra cui AOT nativo.
performante: trovare il giusto equilibrio tra le funzionalità e i punti di estensione per evitare di appesantire il runtime con codice non fondamentale. La nuova piattaforma di test è progettata per "orchestrare" l'esecuzione di una serie di test, piuttosto che fornire dettagli sull'implementazione di come eseguirli.
Extensible enough: la nuova piattaforma è basata su punti di estendibilità per consentire la personalizzazione massima dell'esecuzione del runtime. Consente di configurare l'host del processo di test, osservare il processo di test e utilizzare le informazioni del framework di test all'interno del processo host di test.
singolo modulo di distribuzione: la funzionalità di hostability consente un modello di distribuzione di un singolo modulo, in cui è possibile usare un singolo output di compilazione per supportare tutti i punti di estendibilità, sia esterni che interni, senza la necessità di distribuire moduli eseguibili diversi.
Sistemi di test supportati
- MSTest. In MSTest il supporto di
Microsoft.Testing.Platformviene eseguito tramite strumento di esecuzione MSTest. - NUnit. In NUnit, il supporto di
Microsoft.Testing.Platformè fornito dal runner NUnit . - xUnit.net. Per altre informazioni, vedere Microsoft Testing Platform (xUnit.net v3) e Microsoft Testing Platform (xUnit.net v2) dalla documentazione di xUnit.net.
- TUnit: interamente costruito sopra
Microsoft.Testing.Platform, per ulteriori informazioni, si prega di consultare la documentazione di TUnit .
Framework di destinazione supportati
Microsoft.Testing.Platform supporta .NET (.NET 8 e versioni successive), .NET Framework (versioni 4.6.2 e successive) e ha come destinazione NETStandard 2.0 per garantire la massima compatibilità con altri runtime.
Avviare e fare il debug dei test
Per indicazioni dettagliate sull'esecuzione e il debug di progetti di test MTP dall'interfaccia della riga di comando, Visual Studio, codice Visual Studio e pipelines CI, vedere Eseguire ed eseguire test di debug.
Opzioni
Per l'elenco completo delle opzioni della riga di comando della piattaforma e dell'estensione, vedere Informazioni di riferimento sulle opzioni dell'interfaccia della riga di comando di Microsoft.Testing.Platform.
Integrazione di MSBuild
Il pacchetto NuGet Microsoft.Testing.Platform.MSBuild offre varie integrazioni per Microsoft.Testing.Platform con MSBuild:
- Supporto per
dotnet test. Per altre informazioni, vedere Test con dotnet test. - Supporto per
ProjectCapabilityrichiesto daVisual StudioeVisual Studio CodeEsploratori di test. - Generazione automatica del punto di ingresso ( metodo
Main). - Generazione automatica del file di configurazione.
- Rilevamento automatico e registrazione dei pacchetti di estensione installati.
Quando questo pacchetto è attivo (impostazione predefinita per MSTest, NUnit e strumenti di esecuzione xUnit), l'installazione di un pacchetto NuGet di estensione è tutto ciò che è necessario. Le estensioni vengono registrate automaticamente senza modifiche al codice. Se si disabilita il punto di ingresso generato automaticamente impostando <GenerateTestingPlatformEntryPoint>false</GenerateTestingPlatformEntryPoint>, è necessario registrare manualmente le estensioni nel Main metodo. Ogni pagina di estensione documenta la chiamata di registrazione manuale.
Nota
Questa integrazione funziona in modo transitivo (un project che fa riferimento a un altro project che fa riferimento a questo pacchetto si comporta come se fa riferimento al pacchetto) e può essere disabilitato tramite la proprietà IsTestingPlatformApplication MSBuild.