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.
Vous pouvez écrire et exécuter des tests unitaires dans Visual Studio à l’aide de certaines infrastructures JavaScript les plus populaires sans avoir à passer à une invite de commandes. Les projets Node.js et ASP.NET Core sont pris en charge.
Les frameworks pris en charge sont les suivants :
- Mocha (mochajs.org)
- Jasmine (Jasmine.github.io)
- Bande (github.com/substack/tape)
- Jest (jestjs.io)
- Vitest (vitest.dev)
Écrire des tests unitaires pour un projet basé sur l’interface CLI (.esproj)
Les projets CLI pris en charge dans Visual Studio 2022 fonctionnent avec l’Explorateur de tests. Vitest est l’infrastructure de test intégrée pour les projets React et Vue (précédemment Jest), et Karma et Jasmine sont utilisés pour les projets Angular. Par défaut, vous serez en mesure d’exécuter les tests par défaut fournis par chaque infrastructure, ainsi que les tests supplémentaires que vous écrivez. Appuyez simplement sur le bouton Exécuter dans l’Explorateur de tests. Si vous n’avez pas encore ouvert l’Explorateur de tests, vous pouvez le trouver en sélectionnant >'Explorateur de tests dans la barre de menus.
Pour exécuter des tests unitaires à partir de la ligne de commande, cliquez avec le bouton droit sur le projet dans l’Explorateur de solutions, choisissez Ouvrir dans terminal, puis exécutez la commande spécifique au type de test.
Pour plus d’informations sur la configuration des tests unitaires, consultez les rubriques suivantes :
Un exemple simple est également fourni ici. Toutefois, utilisez les liens précédents pour obtenir des informations complètes.
Ajouter un test unitaire (.esproj)
L’exemple suivant est basé sur le modèle de projet TypeScript React fourni dans Visual Studio 2022 version 17.12 ou ultérieure, le modèle Projet React TypeScript autonome. Pour Vue et Angular, les étapes sont similaires.
Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le projet React et choisissez Modifier le fichier projet.
Vérifiez que les propriétés suivantes sont présentes dans le fichier .esproj avec les valeurs affichées.
<PropertyGroup> <JavaScriptTestRoot>src\</JavaScriptTestRoot> <JavaScriptTestFramework>Vitest</JavaScriptTestFramework> </PropertyGroup>Cet exemple spécifie Vitest comme framework de test. Vous pouvez spécifier Mocha, Tape, Jasmine ou Jest à la place.
L’élément
JavaScriptTestRootspécifie que vos tests unitaires se trouveront dans le dossier src de la racine du projet. Il est également courant de spécifier le dossier de test .Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le nœud npm et choisissez Installer les nouveaux packages npm.
Utilisez la boîte de dialogue d’installation du package npm pour installer les packages npm suivants :
- vitest
Ce package est ajouté au fichier package.json sous dépendances.
Remarque
Si vous utilisez jest, le package npm jest-editor-support est requis ainsi que le package jest.
Dans package.json, ajoutez la section
testà la fin de la sectionscripts:"scripts": { ... "test": "vitest" },Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le dossier src et choisissez Ajouter>nouvel élément, puis ajoutez un nouveau fichier nommé App.test.tsx.
Cela ajoute le nouveau fichier sous le dossier src.
Ajoutez le code suivant à App.test.tsx.
import { describe, it, expect } from 'vitest'; describe('testAsuite', () => { it('testA1', async () => { expect(2).toBe(2); }); });Ouvrez l’Explorateur de tests (choisissez Test>) et Visual Studio découvre et affiche des tests. Si les tests ne s’affichent pas initialement, régénérez le projet pour actualiser la liste.
Remarque
Pour TypeScript, n’utilisez pas l’option
outfiledans tsconfig.json, car l’Explorateur de tests ne pourra pas trouver vos tests unitaires. Vous pouvez utiliser l’optionoutdir, mais assurez-vous que les fichiers de configuration tels quepackage.jsonet lestsconfig.jsonse trouvent à la racine du projet.Important
Si la sortie des tests dans la fenêtre Sortie affiche une
ReadOnlySpanerreur lors de la découverte des tests, utilisez la solution de contournement suivante pour un problème MSBuild connu. Pour Visual Studio 2022, ouvrez le dossier, Program Files\Microsoft Visual Studio\2022\<version>\Common7\IDE\Extensions\TestPlatform, puis renommez System.Memory.dll en un autre nom. Ce correctif active la découverte de tests.
Exécuter des tests (.esproj)
Vous pouvez exécuter les tests en cliquant sur le lien Exécuter tout dans l’Explorateur de tests. Vous pouvez également exécuter des tests en sélectionnant un ou plusieurs tests ou groupes, en cliquant avec le bouton droit et en sélectionnant Exécuter dans le menu contextuel. Les tests s’exécutent en arrière-plan et l’Explorateur de tests met automatiquement à jour et affiche les résultats. En outre, vous pouvez également déboguer les tests sélectionnés en cliquant avec le bouton droit et en sélectionnant Déboguer.
L’illustration suivante montre l’exemple avec un deuxième test unitaire ajouté.
Pour certaines infrastructures de test unitaire, les tests unitaires sont généralement exécutés sur le code JavaScript généré.
Remarque
Dans la plupart des scénarios TypeScript, vous pouvez déboguer un test unitaire en définissant un point d’arrêt dans le code TypeScript, en cliquant avec le bouton droit sur un test dans l’Explorateur de tests et en choisissant déboguer. Dans des scénarios plus complexes, tels que certains scénarios qui utilisent des mappages de source, vous pouvez rencontrer des difficultés pour atteindre les points d’arrêt dans le code TypeScript. Pour contourner ce problème, essayez d’utiliser le mot clé debugger.
Remarque
Les tests de profilage et la couverture du code ne sont actuellement pas pris en charge.
Exécuter des tests unitaires à partir de la ligne de commande pour un projet basé sur l’interface CLI (.esproj)
Vous pouvez exécuter des tests unitaires directement à partir de la ligne de commande de votre infrastructure de test unitaire de la même façon que si vous n’utilisiez pas Visual Studio.
Vous pouvez également choisir d’exécuter les tests à partir de la ligne de commande à l’aide de vstest.console. Par exemple, vous pouvez utiliser vstest.console pour maintenir la cohérence avec les tests unitaires C# ou pour s’exécuter dans Azure DevOps. Utilisez la commande suivante, mais remplacez MyProj par le nom de votre projet.
vstest.console .\MyProj.esproj /TestAdapterPath:"C:\Program Files\Microsoft Visual Studio\18\Enterprise\Common7\IDE\Extensions\Microsoft\JavaScript"
vstest.console .\MyProj.esproj /TestAdapterPath:"C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\Extensions\Microsoft\JavaScript"
Écrire des tests unitaires pour ASP.NET Core
Pour ajouter la prise en charge des tests unitaires de JavaScript et De TypeScript dans un projet ASP.NET Core, vous devez ajouter la prise en charge des tests unitaires, npm et TypeScript au projet en incluant les packages NuGet requis.
Ajouter un test unitaire (ASP.NET Core)
L’exemple suivant est basé sur le modèle de projet ASP.NET Core Model-View-Controller, et inclut l’ajout d’un test unitaire Jest ou Mocha.
Créez un projet ASP.NET modèle principalView-Controller.
Pour obtenir un exemple de projet, consultez Ajouter TypeScript à une application ASP.NET Core existante. Pour la prise en charge des tests unitaires, nous vous recommandons de commencer par un modèle de projet standard ASP.NET Core.
Dans l’Explorateur de solutions (volet droit), cliquez avec le bouton droit sur le nœud de projet ASP.NET Core, puis sélectionnez Gérer les packages NuGet pour solutions.
Dans l’onglet Parcourir, recherchez les packages suivants et installez chacun d’eux :
Utilisez le package NuGet pour ajouter la prise en charge de TypeScript au lieu du package TypeScript npm.
Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le nœud du projet et choisissez Modifier le fichier projet.
Le fichier .csproj s’ouvre dans Visual Studio.
Ajoutez les éléments suivants au fichier .csproj dans l’élément
PropertyGroup.Cet exemple spécifie Jest ou Mocha comme framework de test. Vous pouvez spécifier Tape ou Jasmine à la place.
L’élément
JavaScriptTestRootspécifie que vos tests unitaires se trouveront dans le dossier tests de la racine du projet.<PropertyGroup> ... <JavaScriptTestRoot>tests\</JavaScriptTestRoot> <JavaScriptTestFramework>Jest</JavaScriptTestFramework> <GenerateProgramFile>false</GenerateProgramFile> </PropertyGroup>Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le nœud de projet ASP.NET Core, puis sélectionnez Ajouter > nouvel élément. Choisissez le fichier de configuration JSON typeScript , puis sélectionnez Ajouter.
Si vous ne voyez pas tous les modèles d’élément, sélectionnez Afficher tous les modèles, puis choisissez le modèle d’élément.
Visual Studio ajoute le fichier tsconfig.json à la racine du projet. Vous pouvez utiliser ce fichier pour configurer les options du compilateur TypeScript.
Ouvrez tsconfig.json et remplacez le code par défaut par le code suivant :
{ "compileOnSave": true, "compilerOptions": { "noImplicitAny": false, "noEmitOnError": true, "removeComments": false, "sourceMap": true, "target": "es5", "outDir": "wwwroot/js" }, "include": [ "scripts/**/*" ], "exclude": [ "node_modules", "tests" ] }Pour Jest, si vous souhaitez compiler des tests TypeScript en JavaScript, supprimez le dossier tests du exclure section.
Les scripts dossier vous permettent de placer le code TypeScript pour votre application. Pour obtenir un exemple de projet qui ajoute du code, consultez Ajouter TypeScript à une application ASP.NET Core existante.
Cliquez avec le bouton droit sur le projet dans l'Explorateur de solutions et choisissez Ajouter>Nouvel Élément (ou appuyez sur Ctrl + MAJ + A). Utilisez la zone de recherche pour rechercher le fichier npm, choisissez le fichier de configuration npm, utilisez le nom par défaut, puis cliquez sur Ajouter.
Un fichier package.json est ajouté à la racine du projet.
Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le nœud npm sous Dépendances, puis choisissez Installer les nouveaux packages npm.
Remarque
Dans certains scénarios, l’Explorateur de solutions peut ne pas afficher le nœud npm en raison d’un problème connu décrit ici. Si vous avez besoin de voir le nœud npm, vous pouvez décharger le projet (cliquez avec le bouton droit sur le projet et choisissez décharger le projet) puis recharger le projet pour que le nœud npm apparaisse à nouveau. Vous pouvez également ajouter les entrées de package à package.json et installer en créant le projet.
Utilisez la boîte de dialogue d’installation du package npm pour installer les packages npm suivants :
Dans package.json, ajoutez la section
testà la fin de la sectionscripts:Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le dossier de test, puis choisissez Ajouter>nouvel élément, puis ajoutez un nouveau fichier nommé App.test.tsx.
Cela intègre le nouveau fichier au dossier test.
Ajoutez le code suivant à App.test.tsx.
Ouvrez l’Explorateur de tests (choisissez Test>Windows>Explorateur de tests) et Visual Studio découvre et affiche des tests. Si les tests ne s’affichent pas initialement, régénérez le projet pour actualiser la liste. L’illustration suivante montre l’exemple Jest, avec deux fichiers de test unitaire différents.
Remarque
Pour TypeScript, n’utilisez pas l’option
outfiledans tsconfig.json, car l’Explorateur de tests ne pourra pas trouver vos tests unitaires. Vous pouvez utiliser l’optionoutdir, mais assurez-vous que les fichiers de configuration tels quepackage.jsonet lestsconfig.jsonse trouvent à la racine du projet.Important
Si la sortie des tests dans la fenêtre Sortie affiche une
ReadOnlySpanerreur lors de la découverte des tests, utilisez la solution de contournement suivante pour un problème MSBuild connu. Dans Visual Studio 2022, ouvrez le dossier, Program Files\Microsoft Visual Studio\2022\<version>\Common7\IDE\Extensions\TestPlatform, puis renommez System.Memory.dll en un autre nom. Ce correctif active la découverte de tests.
Exécuter des tests (ASP.NET Core)
Vous pouvez exécuter les tests en cliquant sur le lien Exécuter tout dans l’Explorateur de tests. Vous pouvez également exécuter des tests en sélectionnant un ou plusieurs tests ou groupes, en cliquant avec le bouton droit et en sélectionnant Exécuter dans le menu contextuel. Les tests s’exécutent en arrière-plan et l’Explorateur de tests met automatiquement à jour et affiche les résultats. En outre, vous pouvez également déboguer les tests sélectionnés en cliquant avec le bouton droit et en sélectionnant Déboguer.
L’illustration suivante montre l’exemple Jest, avec un deuxième test unitaire ajouté.
capture d’écran 
Pour certaines infrastructures de test unitaire, les tests unitaires sont généralement exécutés sur le code JavaScript généré.
Remarque
Dans la plupart des scénarios TypeScript, vous pouvez déboguer un test unitaire en définissant un point d’arrêt dans le code TypeScript, en cliquant avec le bouton droit sur un test dans l’Explorateur de tests et en choisissant déboguer. Dans des scénarios plus complexes, tels que certains scénarios qui utilisent des mappages de source, vous pouvez rencontrer des difficultés pour atteindre les points d’arrêt dans le code TypeScript. Pour contourner ce problème, essayez d’utiliser le mot clé debugger.
Remarque
Les tests de profilage et la couverture du code ne sont actuellement pas pris en charge.