Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Dans cette rubrique, nous fournissons des recommandations pour tester et valider des fonctionnalités dans les applications créées avec les fonctionnalités Windows App SDK à l’aide de WinUI 3 fonctionnalités d’interface utilisateur (IU). Le test est un élément essentiel du processus de développement d’applications : il vous aide à intercepter les bogues tôt, à maintenir la qualité du code et à garantir une expérience utilisateur fiable à mesure que votre application évolue. En incorporant des tests unitaires dans votre flux de travail, vous pouvez refactoriser en toute confiance du code, ajouter de nouvelles fonctionnalités et expédier des mises à jour sachant que les fonctionnalités existantes continuent de fonctionner comme prévu.
Tutoriel : Créer un projet de test unitaire WinUI 3.
La plupart des types d’objets sous les espaces de noms Microsoft.UI.Xaml doivent être utilisés à partir d’un thread d’interface utilisateur dans un processus d’application XAML. (Pour en savoir plus sur le test des applications créées avec Windows App SDK sans utilisation de WinUI 3, voir la section suivante, Tester les fonctionnalités non-WinUI.)
Note
Nous vous recommandons de refactoriser tout code à tester en l’extrayant du projet d’application principal et en le plaçant dans un projet de bibliothèque. Votre projet d’application et votre projet de test unitaire peuvent ensuite référencer ce projet de bibliothèque. Cette section explique comment créer des tests unitaires pour les applications WinUI 3 dans Visual Studio à l’aide des modèles de projet de test unitaire intégrés.
Note
L’application de test unitaire décrite ici est écrite dans le contexte d’une application WinUI 3. Cela est nécessaire pour tous les tests qui exécutent du code nécessitant le runtime XAML. Ce projet crée un thread d’interface utilisateur XAML et exécute les tests.
Dans ce tutoriel, vous allez apprendre à :
- Créez un projet WinUI Unit Test App dans Visual Studio.
- Utilisez l’explorateur Visual Studio Test.
- Ajoutez un projet de bibliothèque de classes WinUI à des fins de test.
- Exécutez des tests avec l’Explorateur de tests Visual Studio.
Prerequisites
Vous devez avoir Visual Studio installé et configuré pour le développement WinUI. Consultez démarrage rapide : Configurer votre environnement et créer un projet WinUI 3.
Créer un projet d’application de test unitaire WinUI
Pour commencer, créez un projet de test unitaire. Le type de projet est fourni avec tous les fichiers de modèle dont vous avez besoin.
Ouvrez Visual Studio et sélectionnez Créer un nouveau projet dans la fenêtre Démarrer.
Dans la fenêtre Créer un nouveau projet, filtrez les projets sur C#, Windows et WinUI, sélectionnez le modèle , puis sélectionnez Next
[Facultatif] Dans la fenêtre Configurer votre nouveau projet, modifiez le Nom du projet, le Nom de la solution (décochez Placer la solution et le projet dans le même répertoire) et l’Emplacement de votre projet.
Cliquez sur Créer.
Exécuter des tests avec l’Explorateur de tests
Lorsque vous créez le projet de test, vos tests apparaissent dans l’Explorateur de tests, qui permet d'exécuter vos tests unitaires. Vous pouvez également regrouper des tests en catégories, filtrer la liste de tests, créer, enregistrer et exécuter des playlists de tests, déboguer des tests unitaires et (dans Visual Studio Entreprise) analyser la couverture du code.
Le fichier UnitTests.cs contient le code source des tests unitaires utilisés par l’Explorateur de tests. Par défaut, les exemples de tests de base présentés ici sont créés automatiquement :
namespace WinUITest1
{
[TestClass]
public class UnitTest1
{
[TestMethod]
public void TestMethod1()
{
Assert.AreEqual(0, 0);
}
// Use the UITestMethod attribute for tests that need to run on the UI thread.
[UITestMethod]
public void TestMethod2()
{
var grid = new Grid();
Assert.AreEqual(0, grid.MinWidth);
}
}
}
Si vous ne l’avez pas déjà fait, générez votre solution. Cela permet Visual Studio de « découvrir » tous les tests disponibles.
Ouvrez l’Explorateur de tests. S’il n’est pas visible, ouvrez le menu Test, puis choisissez Explorateur de tests (ou appuyez sur Ctrl + E, T).
Consultez les tests. Dans la fenêtre Explorateur de tests, développez tous les nœuds (seuls les exemples de tests seront présents à ce stade).
Exécutez les tests.
- Cliquez avec le bouton droit sur les nœuds de tests individuels, puis sélectionnez Exécuter.
- Sélectionnez un test, puis appuyez sur le bouton Lecture ou sur Ctrl + R, T.
- Appuyez sur le bouton Exécuter tous les tests dans l’affichage ou appuyez sur Ctrl + R, V.
Examinez les résultats. Une fois les tests terminés, les résultats sont affichés dans la fenêtre Explorateur de tests.
Ajouter un projet de bibliothèque de classes à des fins de test
Ajoutez un projet à la solution de test unitaire. Dans le Solution Explorer, cliquez avec le bouton droit sur la solution, puis sélectionnez Add -> Nouveau projet... .
Pour cet exemple, ajoutez un projet de bibliothèque de classes WinUI 3. Dans la fenêtre Nouveau projet, filtrez sur C#/Windows/WinUI, puis sélectionnez Bibliothèque de classesWinUI.
Sélectionnez Suivant et entrez un nom pour le projet (pour cet exemple, nous utilisons
WinUIClassLibrary1) et appuyez sur Créer.
Ajoutez un nouveau
UserControlau projet. Dans le Solution Explorer, cliquez avec le bouton droit sur le projet de bibliothèque de classes WinUI 3 que vous venez d’ajouter et sélectionnez Add -> Nouvel élément dans le menu contextuel.
Dans la fenêtre Ajouter un nouvel élément , sélectionnez le nœud WinUI dans la liste des éléments installés , puis choisissez Contrôle utilisateur dans les résultats. Nommez le contrôle
UserControl1.
Ouvrez le fichier de code sous-jacent UserControl1.xaml.cs. Pour cet exemple, nous ajoutons une nouvelle méthode publique appelée
GetSevenqui retourne simplement un entier.namespace WinUICLassLibrary1 { public sealed partial class UserControll : UserControl { public UserControl1() { this.InitializeComponent(); } public int GetSeven() { return 7; } } }Définissez le projet bibliothèque de classes WinUI 3 comme dépendance du projet de test unitaire pour permettre l’utilisation de types à partir du projet de bibliothèque de classes WinUI 3. Dans Solution Explorer, sous le projet de bibliothèque de classes, cliquez avec le bouton droit sur Dependencies et sélectionnez Add Project Reference.
Sélectionnez l’élément
WinUIClassLibrary1dans la liste Projets .
Créez une méthode de test dans UnitTests.cs. Comme ce cas de test nécessite qu’un thread d’interface utilisateur XAML s’exécute, marquez-le avec l’attribut
[UITestMethod]au lieu de l’attribut standard[TestMethod].[UITestMethod] public void TestUserControl1() { WinUIClassLibrary1.UserControl1 userControl1 = new WinUIClassLibrary1.UserControl1(); Assert.AreEqual(7, userControl1.GetSeven()); }Cette nouvelle méthode de test apparaît désormais dans l’Explorateur de tests comme l’un de vos tests unitaires.
Exécutez les tests.
- Cliquez avec le bouton droit sur le nouveau nœud de test et sélectionnez Exécuter.
- Sélectionnez le nouveau test, puis appuyez sur le bouton Lecture ou appuyez sur Ctrl + R, T.
- Appuyez sur le bouton Exécuter tous les tests dans l’affichage ou appuyez sur Ctrl + R, V.
Test de fonctionnalités non WinUI
Dans de nombreux cas, une application inclut des fonctionnalités qui ne dépendent pas des types Microsoft.UI.Xaml, mais qui ont quand même besoin de tests. Différents outils sont disponibles pour tester le code .NET, notamment MSTest, NUnit et xUnit. Pour plus d’informations sur le test des applications .NET, consultez Testing dans .NET.
Dans Visual Studio, vous pouvez créer un nouveau projet pour l’un de ces outils de test en cliquant avec le bouton droit sur votre solution dans l’Explorateur de solutions, en sélectionnant Add -> Nouveau projet dans le menu contextuel, en choisissant C# à partir du sélecteur Toutes les langues/Windows et Test à partir du sélecteur Tous les types de projets, puis en sélectionnant l’outil de test approprié dans la liste (Projet de test MSTest, Projet de test NUnit ou Projet de test xUnit).
Lors de la création d’un projet MSTest, NUnit ou xUnit qui fait référence à un projet WinUI 3, vous devez :
Mettre à jour le
TargetFrameworkdans le fichier .csproj de votre projet de test. Cette valeur doit correspondre auTargetFrameworkdu projet WinUI 3. Par défaut, msTest, les projets NUnit et xUnit ciblent la gamme complète de plateformes prises en charge par .NET, mais un projet WinUI 3 prend uniquement en charge Windows et a un TargetFramework plus spécifique.Par exemple, si vous ciblez .NET 8, mettez à jour targetFramework du projet de test unitaire de
<TargetFramework>net8.0</TargetFramework>vers<TargetFramework>net8.0-windows10.0.19041.0</TargetFramework>.Mettre à jour les RuntimeIdentifiers dans votre projet de test.
<RuntimeIdentifiers Condition="$([MSBuild]::GetTargetFrameworkVersion('$(TargetFramework)')) >= 8">win-x86;win-x64;win-arm64</RuntimeIdentifiers><RuntimeIdentifiers Condition="$([MSBuild]::GetTargetFrameworkVersion('$(TargetFramework)')) < 8">win10-x86;win10-x64;win10-arm64</RuntimeIdentifiers>Ajoutez la propriété suivante au
PropertyGroupdans le fichier .csproj de votre projet de test pour vous assurer que le test charge le runtime Windows App SDK :<WindowsAppSdkBootstrapInitialize>true</WindowsAppSdkBootstrapInitialize>Vérifiez que le runtime Windows App SDK est installé sur la machine exécutant le test. Pour plus d’informations sur le déploiement Windows App SDK, consultez Windows App SDK guide de déploiement pour les applications dépendantes de l’infrastructure empaquetées avec un emplacement externe (ou non empaqueté).
Ressources supplémentaires
- Principes de base des tests unitaires
- Outils de test dans Visual Studio
Windows developer