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.
In .NET, un framework di test e una piattaforma di test sono componenti diversi che interagiscono per individuare ed eseguire test.
- Il framework di test definisce il modello di test su cui si scrive, ad esempio MSTest, NUnit, xUnit.net o TUnit.
- La piattaforma di test esegue test, si integra con gli IDE e l'interfaccia della riga di comando e fornisce punti di estensione condivisi.
È possibile scegliere tra due piattaforme di test:
- VSTest
- Microsoft.Testing.Platform (MTP)
Suggerimento
Per la configurazione più semplice, scegliere una piattaforma per il repository e configurare i progetti di test, l'integrazione continua e gli strumenti in modo coerente per tale piattaforma. Non combinare progetti di test basati su VSTest e Microsoft.Testing.Platform .NET nella stessa soluzione o eseguire la configurazione perché questo scenario non è supportato. Se si eseguono anche test non .NET che dipendono da VSTest (ad esempio, test C++ o JavaScript), eseguire questi test in configurazioni separate dai test .NET basati su MTP.
Come scegliere la piattaforma
Usare gli scenari seguenti per scegliere rapidamente.
| Caso d'uso | Scegli | Perché |
|---|---|---|
| Sono necessari scenari di esecuzione di test per Native AOT o trimming. | Microsoft.Testing.Platform | MTP supporta questi scenari di distribuzione moderni, mentre VSTest non lo supporta. |
| Stai creando progetti di test WinUI o UWP in pacchetto. | VSTest | Questi tipi di progetto non sono attualmente supportati da MTP. |
| È necessario combinare .NET test e adattatori di test non .NET (ad esempio schede JavaScript o C++). | VSTest | VSTest supporta scenari di adattatori di linguaggio misto, mentre MTP è .NET specifico. |
| Si vuole che i progetti di test si comportino come file eseguibili normali (, esecuzione diretta dell'eseguibile, , e flussi F5 del progetto di avvio). | Microsoft.Testing.Platform | MTP è eseguibile per primo, quindi le app di test vengono eseguite come app standard .NET nei flussi di lavoro locali e CI. |
| Ci si basa su integrazioni consolidate a lungo termine tra gli strumenti esistenti. | VSTest | VSTest ha la miglior compatibilità storica tra prodotti, processi e pipeline esistenti. Il supporto MTP è in crescita nell'ecosistema, ma alcune integrazioni potrebbero essere in ritardo rispetto a VSTest. |
| Preferisci impostazioni predefinite rigorose e comportamenti espliciti. | Microsoft.Testing.Platform | MTP favorisce l'esecuzione deterministica con un modello di estensione leggero, con consenso esplicito e registrazione in fase di compilazione. Ad esempio, può non riuscire quando non vengono eseguiti test, ridurre la variabilità dipendente dall'ambiente e disabilitare singole estensioni per ogni ambiente. |
| Preferisci impostazioni predefinite più miti e compatibili con le versioni precedenti. | VSTest | Entrambe le piattaforme si preoccupano della compatibilità con le versioni precedenti. VSTest assegna le priorità alle impostazioni predefinite orientate alla compatibilità per toolchain diverse ed esistenti, mentre MTP offre compatibilità con le versioni precedenti all'interno del proprio modello di estensione. |
| Si è bloccati da un problema o un comportamento specifico di VSTest nel flusso di lavoro corrente. | Microsoft.Testing.Platform | In molti scenari lo stesso flusso di lavoro non è interessato quando viene spostato in MTP a causa delle differenze nell'architettura del modello di runtime e dell'estensione. |
Se il caso d'uso specifico non è elencato, entrambe le piattaforme sono scelte valide.
Supporto per l'integrazione e gli strumenti
| Area di integrazione | VSTest | Microsoft.Testing.Platform |
|---|---|---|
| Integrazione con l'IDE | Integrazione matura tra Visual Studio e altri strumenti che dipendono dal protocollo e dagli adattatori VSTest. | Supportato in scenari di Visual Studio e Visual Studio Code, con un'integrazione continua in parti dell'ecosistema. |
| CI e strumenti esterni | Ampio supporto tra strumenti e attività Microsoft e non Microsoft consolidati. In Azure DevOps è possibile usare l'attività VSTest (VSTest@3, vstest.console) o l'attività di .NET (DotNetCoreCLI@2, dotnet test). |
Funziona nei flussi di lavoro di integrazione continua e di .NET moderni, ma alcune integrazioni di terze parti potrebbero ancora essere in ritardo rispetto a VSTest. In Azure DevOps, utilizzare l'attività .NET (DotNetCoreCLI@2, dotnet test). |
| Comportamento | Modalità VSTest predefinita. Gli argomenti e i comportamenti di VSTest si applicano. | La modalità MTP nativa è disponibile in .NET 10 SDK e versioni successive. |
Per informazioni dettagliate sulle modalità e sugli argomenti, vedere Test con .
Iniziare dal framework di test
Se si sceglie VSTest
- MSTest: eseguire test con MSTest
- NUnit: NUnit e Microsoft.Testing.Platform
- xUnit.net: Introduzione all'xUnit.net
- TUnit: non supportato in VSTest. Usare Microsoft.Testing.Platform.
Se si sceglie Microsoft.Testing.Platform
- MSTest: eseguire test con MSTest
- NUnit: Supporto di Microsoft.Testing.Platform in NUnit (NUnit runner)
- xUnit.net: Microsoft Testing Platform (xUnit.net v3)
- TUnit: Documentazione di TUnit
Passaggi successivi
- Approfondimenti sui concetti di MTP: Panoramica di Microsoft.Testing.Platform
- Comprendere le opzioni di VSTest
- Eseguire la migrazione da VSTest: eseguire la migrazione da VSTest a Microsoft.Testing.Platform
- Aggiungere funzionalità: Funzionalità di Microsoft.Testing.Platform