Condividi tramite


Panoramica delle piattaforme di test per .NET

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