Remarque
L’accès à cette page requiert une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page requiert une autorisation. Vous pouvez essayer de modifier des répertoires.
MSTest, Microsoft Testing Framework, est une infrastructure de test open source et multiplateforme entièrement prise en charge pour les applications .NET. Il vous permet d’écrire et d’exécuter des tests et fournit des suites de tests avec intégration à Visual Studio et Visual Studio Code Test Explorers, à l’interface CLI .NET et à de nombreux pipelines CI.
MSTest est hébergé sur GitHub et fonctionne avec toutes les cibles .NET prises en charge.
Fonctionnalités clés
MSTest fournit des fonctionnalités de test complètes :
-
Tests pilotés par les données : exécutez des tests avec plusieurs entrées à l'aide de
DataRow,DynamicDataet de sources de données externes. - Gestion du cycle de vie des tests : configuration et nettoyage au niveau de l’assembly, de la classe et des tests.
- Exécution parallèle : exécutez des tests simultanément pour réduire le temps d’exécution.
- Organisation de test : catégoriser, hiérarchiser et filtrer des tests avec des attributs de métadonnées.
- Analyseurs de code : détectez les problèmes courants et appliquez les meilleures pratiques au moment de la compilation.
- Assertions : méthodes d’assertion complètes pour valider les résultats.
Plateformes prises en charge
MSTest prend en charge un large éventail de plateformes .NET et de frameworks cibles. Le tableau suivant récapitule la prise en charge de la plateforme et les considérations spéciales :
| Platform | Frameworks cibles | Prise en charge du threading | Attributs spéciaux | Remarques |
|---|---|---|---|---|
| .NET | .NET 8+ | Parallélisation complète | Tous les attributs | Recommandé pour les nouveaux projets |
| .NET Framework | 4.6.2+ | Parallélisation complète | Tous les attributs | Prise en charge complète des fonctionnalités |
| UWP | UAP 10, .NET 9+ avec UAP | Thread d’interface utilisateur | UITestMethod |
Nécessite des paramètres <UseUwp>true</UseUwp>; voir l’exemple UWP |
| WinUI 3 | .NET 8+ | Thread d’interface utilisateur | UITestMethod |
Nécessite le Kit de développement logiciel (SDK) d’application Windows ; voir l’exemple WinUI |
| AOT natif | .NET 8+ | Parallélisation complète | La plupart des attributs | Ensemble de fonctionnalités limité ; Voir l’exemple AOT natif |
Points à prendre en compte spécifiques à la plateforme
Tests de la plateforme Windows universelle (UWP)
Les tests UWP s’exécutent dans le conteneur d’application UWP et nécessitent le thread d’interface utilisateur pour de nombreuses opérations :
[TestClass]
public class UwpTests
{
[UITestMethod]
public void TestUwpControl()
{
// Test runs on UI thread
var button = new Button();
Assert.IsNotNull(button);
}
}
Pour la configuration UWP, consultez l’exemple BlankUwpNet9App.
Test de WinUI 3
Les tests WinUI 3 nécessitent également l’accès aux threads d’interface utilisateur pour tester les composants visuels :
[TestClass]
public class WinUITests
{
[UITestMethod]
public void TestWinUIControl()
{
// Test runs on UI thread
var window = new MainWindow();
Assert.IsNotNull(window);
}
}
Pour la configuration de WinUI, consultez l’exemple BlankWinUINet9App et l’exemple MSTestRunnerWinUI.
AOT natif
La compilation AOT native est prise en charge avec certaines limitations en raison de fonctionnalités de réflexion réduites. Utilisez des générateurs sources lorsque cela est possible et testez vos scénarios AOT avec l’exemple NativeAotRunner.
Prise en charge du threading STA
Pour les scénarios d’interopérabilité COM Windows, MSTest fournit les attributs STATestClass et STATestMethod pour exécuter des tests dans un appartement avec un thread unique. Pour plus d’informations sur le threading STA, notamment la prise en charge des continuations asynchrones avec UseSTASynchronizationContext, consultez les attributs de threading.
Exécuteurs de tests
MSTest prend en charge deux plateformes d’exécution de test :
- Microsoft.Testing.Platform (MTP) : plateforme de test moderne recommandée avec des performances et une extensibilité améliorées.
- VSTest : plateforme de test d’origine et par défaut pour .NET.
Pour les nouveaux projets, nous vous recommandons d’utiliser Microsoft.Testing.Platform (MTP) avec MSTest.Sdk.
Politique de support MSTest
Depuis la version v3.0.0, MSTest suit strictement le contrôle de version sémantique.
L’équipe MSTest prend uniquement en charge la dernière version publiée et encourage vivement les utilisateurs à toujours effectuer une mise à jour vers la dernière version pour tirer parti des améliorations et des correctifs de sécurité. Les versions préliminaires ne sont pas prises en charge par Microsoft, mais sont proposées pour les tests publics avant la version finale.
Historique des versions
MSTest a subi une évolution significative entre les principales versions :
- MSTest v1 : Infrastructure de test Visual Studio d’origine
- MSTest v2 : Première version open source avec prise en charge multiplateforme
- MSTest v3 : Réécriture moderne avec une architecture et des fonctionnalités améliorées
- MSTest v4 : Version actuelle avec fonctionnalités améliorées
Pour plus d’informations sur toutes les versions, consultez le journal des modifications MSTest.
Si vous effectuez une mise à niveau à partir d’une version antérieure, consultez les guides de migration :
Modifications majeures
L'équipe MSTest examine attentivement et minimise les changements critiques. Lorsque des changements disruptifs sont nécessaires, l'équipe utilise Les annonces GitHub et les étiquettes de changement rompus sur les problèmes pour informer la communauté dès le début, en donnant aux utilisateurs le temps de fournir des commentaires et d'exprimer des préoccupations avant la publication des modifications.