☰ Menu

06.10.2026 · Signal Titans Editorial

MSTest 4.5 unifie les tests sur le thread UI pour les applications UWP et WinUI 3

MSTest 4.5 et Microsoft.Testing.Platform 2.5 ajoutent des tests natifs sur le thread UI et l'activation par processus sidecar pour UWP et WinUI 3.

Un prisme géométrique cyan brillant au centre est relié par un ruban argenté à une sphère de verre translucide plus petite, sur un fond d'ardoise foncée.

Microsoft a mis à jour MSTest en version 4.5 et Microsoft.Testing.Platform en version 2.5, apportant un modèle unifié de test d'interface utilisateur (UI) aux applications Universal Windows Platform (UWP) et WinUI 3. Ces mises à jour permettent à l'initialisation des tests, à l'exécution du code asynchrone et aux routines de nettoyage d'être exécutées directement sur le thread UI natif de l'application, plutôt que sur un thread « single-threaded apartment » générique.

Architecture d'exécution unifiée par processus sidecar

MSTest.Sdk coordonne l'exécution des tests sur les hôtes WinUI 3 non paquetés, les applications paquetées, l'UWP moderne, l'UWP classique et les hôtes AppContainer. Au lieu de dépendre de composants obsolètes tels que vstest.console, Microsoft.NET.Test.Sdk ou UwpTestHostRuntimeProvider, MSTest.Sdk utilise un contrôleur sidecar avec un niveau de confiance total. Pour les projets WinUI 3 non paquetés, l'outil démarre directement l'apphost. Pour les logiciels paquetés, le contrôleur sidecar enregistre la structure de sortie et active l'application hôte via son Application User Model ID en utilisant Microsoft.Testing.Extensions.PackagedApp, tout en gérant les arguments en ligne de commande, l'annulation des tests, les tentatives de réexécution et la génération de rapports.

Intégration du répartiteur UI

Le framework utilise l'attribut UITestMethod pour accorder l'accès au thread UI tout au long de la configuration du test, de la logique de test et du nettoyage. Dans les applications de test WinUI 3, les développeurs assignent le DispatcherQueue de la fenêtre principale à l'intérieur du point d'entrée OnLaunched avant de transmettre les arguments du processus à l'assistant d'exécution généré de Microsoft.Testing.Platform. Cette approche remplace les flux de travail STATestMethod, qui établissaient des threads « single-threaded apartment » sans construire de répartiteur WinUI natif.

Exigences d'environnement et exécution CI

L'exécution d'hôtes de test paquetés ou en mode AppContainer nécessite une configuration système spécifique. L'enregistrement des structures de build non signées dépend du mode Développeur ou d'une stratégie de chargement latéral active sur les postes de travail de développement et les agents d'intégration continue. Les tests AppContainer et les builds UWP s'exécutent via des environnements Developer PowerShell non élevés à l'aide de la cible MSBuild InvokeTestingPlatform, tandis que les projets WinUI 3 non paquetés peuvent également s'exécuter directement via les commandes standard dotnet run ou dotnet test.

Illustration éditoriale générée par IA ; ce n’est pas une photographie documentaire.

Source: UWP and WinUI 3 apps: UI testing with MSTest