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.
MSTest, Microsoft Testing Framework, è un framework di test completamente supportato, open source e multipiattaforma per le applicazioni .NET. Consente di scrivere ed eseguire test e fornisce suite di test con integrazione ai Test Explorer di Visual Studio e Visual Studio Code, alla CLI .NET e a molte pipeline di CI.
MSTest è ospitato in GitHub e funziona con tutte le destinazioni .NET supportate.
Funzionalità principali
MSTest offre funzionalità di test complete:
-
Test basati sui dati: eseguire test con più input usando
DataRow,DynamicDatae origini dati esterne. - Gestione del ciclo di vita dei test: installazione e pulizia a livello di assembly, classe e test.
- Esecuzione parallela: eseguire i test contemporaneamente per ridurre il tempo di esecuzione.
- Organizzazione di test: classificare, classificare in ordine di priorità e filtrare i test con attributi di metadati.
- Analizzatori di codice: rilevare i problemi comuni e applicare le procedure consigliate in fase di compilazione.
- Asserzioni: metodi di asserzione completi per la convalida dei risultati.
Piattaforme supportate
MSTest supporta un'ampia gamma di piattaforme .NET e framework di destinazione. La tabella seguente riepiloga il supporto della piattaforma e considerazioni speciali:
| Platform | Framework di destinazione | Supporto per il multithreading | Attributi speciali | Note |
|---|---|---|---|---|
| .NET | .NET 8+ | Parallelizzazione completa | Tutti gli attributi | Consigliato per i nuovi progetti |
| .NET Framework | 4.6.2+ | Parallelizzazione completa | Tutti gli attributi | Supporto completo delle funzionalità |
| UWP | UAP 10, .NET 9+ con UAP | Thread dell'interfaccia utente | UITestMethod |
Richiede impostazioni <UseUwp>true</UseUwp>; vedere l'esempio UWP |
| WinUI 3 | .NET 8+ | Thread dell'interfaccia utente | UITestMethod |
Richiede Windows App SDK; Vedere l'esempio di WinUI |
| AOT nativo | .NET 8+ | Parallelizzazione completa | Maggior parte degli attributi | Set di funzionalità limitato; vedere Esempio di AOT nativo |
Considerazioni specifiche della piattaforma
Test UWP
I test UWP vengono eseguiti nel contenitore di app UWP e richiedono il thread dell'interfaccia utente per molte operazioni:
[TestClass]
public class UwpTests
{
[UITestMethod]
public void TestUwpControl()
{
// Test runs on UI thread
var button = new Button();
Assert.IsNotNull(button);
}
}
Per la configurazione della piattaforma UWP, vedi l'esempio BlankUwpNet9App.
Test di WinUI 3
I test winUI 3 richiedono anche l'accesso al thread dell'interfaccia utente per testare i componenti visivi:
[TestClass]
public class WinUITests
{
[UITestMethod]
public void TestWinUIControl()
{
// Test runs on UI thread
var window = new MainWindow();
Assert.IsNotNull(window);
}
}
Per la configurazione di WinUI, vedere l'esempio BlankWinUINet9App e l'esempio MSTestRunnerWinUI.
AOT nativo
La compilazione AOT nativa è supportata con alcune limitazioni dovute a funzionalità di reflection ridotte. Usare i generatori di origine dove possibile e testare gli scenari AOT con l'esempio NativeAotRunner.
Supporto del threading STA
Per gli scenari di interoperabilità COM di Windows, MSTest fornisce gli attributi STATestClass e STATestMethod per l'esecuzione di test in un apartment a thread singolo. Per informazioni dettagliate sul threading STA, incluso il supporto della continuazione asincrona con UseSTASynchronizationContext, vedere Attributi di threading.
Strumenti di esecuzione dei test
MSTest supporta due piattaforme di esecuzione di test:
- Microsoft.Testing.Platform (MTP): piattaforma di test moderna e consigliata con prestazioni ed estendibilità migliorate.
- VSTest: piattaforma di test originale e predefinita per .NET.
Per i nuovi progetti, è consigliabile usare Microsoft.Testing.Platform (MTP) con MSTest.Sdk.
Criteri di supporto di MSTest
A partire dalla versione 3.0.0, MSTest segue rigorosamente il controllo delle versioni semantiche.
Il team MSTest supporta solo la versione rilasciata più recente e incoraggia vivamente gli utenti a eseguire sempre l'aggiornamento alla versione più recente per trarre vantaggio dai miglioramenti e dalle patch di sicurezza. Le versioni di anteprima non sono supportate da Microsoft, ma sono disponibili per i test pubblici prima della versione finale.
Cronologia delle versioni
MSTest ha subito un'evoluzione significativa nelle versioni principali:
- MSTest v1: framework di test di Visual Studio originale
- MSTest v2: prima versione open source con supporto multipiattaforma
- MSTest v3: Riscrittura moderna con architettura e funzionalità migliorate
- MSTest v4: versione corrente con funzionalità avanzate
Per informazioni dettagliate su tutte le versioni, vedere il changelog MSTest.
Se si esegue l'aggiornamento da una versione precedente, vedere le guide alla migrazione:
Modifiche radicali
Il team MSTest esamina attentamente e riduce al minimo le modifiche che interrompono il funzionamento. Quando sono necessarie modifiche importanti, il team usa annunci GitHub e etichette per modifiche importanti sui problemi per informare la community in anticipo, offrendo agli utenti il tempo necessario per fornire commenti e suggerimenti e esprimere preoccupazioni prima del rilascio delle modifiche.