Comment : exécuter des tests unitaires de base de données à partir de Team Foundation Build
Mise à jour : novembre 2007
Vous pouvez utiliser Team Foundation Build pour exécuter vos tests unitaires de base de données dans le cadre d'un test de vérification de build (BVT). Vous pouvez configurer les tests unitaires de base de données pour déployer la base de données, générer des données de test, puis exécuter les tests sélectionnés. Si vous n'êtes pas familiarisé avec Team Foundation Build, vous devez passer en revue les informations suivantes avant de suivre les procédures de cette rubrique :
Avant d'utiliser ces procédures, vous devez configurer votre environnement de travail en effectuant les tâches suivantes :
Installez Team Foundation Build et le contrôle de version Team Foundation en tant que produits individuels ou dans le cadre de Visual Studio Team System. Vous devez probablement installer Team Foundation Build et contrôle de version Team Foundation sur des ordinateurs différents.
Installez Team Explorer sur l'ordinateur client.
Connectez une session utilisateur Visual Studio à un ordinateur qui exécute Team Foundation Server. Pour plus d'informations sur la façon de se connecter à Team Foundation Server, consultez Comment : établir une connexion à Team Foundation Server.
Après avoir configuré votre environnement de travail, vous devez effectuer les tâches suivantes dans Visual Studio Team System Database Edition :
Créer un projet de base de données.
Importer ou créer le schéma et les objets pour le projet de base de données.
Configurer les propriétés de projet de base de données pour la génération et le déploiement.
Créer un ou plusieurs tests unitaires de base de données.
Ajouter la solution qui contient le projet de base de données et le projet de test unitaire de base de données au contrôle de version, puis archiver tous les fichiers.
Les procédures de cette rubrique expliquent comment créer une définition de build pour exécuter vos tests unitaires de base de données dans le cadre d'une série de tests automatisés :
Créer une liste de tests unitaires de base de données à exécuter.
Archiver la liste de tests.
Créer une définition de build, en indiquant que la liste de tests doit être exécutée dans le cadre de la génération.
Modifier la définition de build pour copier le fichier app.config à l'emplacement approprié pour Team Foundation Build.
Archiver la définition de build mise à jour.
Exécuter la nouvelle définition de build.
Exécution de tests unitaires de base de données sur un ordinateur de build
Lorsque vous exécutez des tests unitaires de base de données sur un ordinateur de build, il est possible que ces tests ne puissent pas trouver les fichiers projet de base de données (.dbproj) ou les plans de génération de données (.dgen). Ce problème est dû au fait que le fichier app.config fait référence à ces fichiers à l'aide de chemins d'accès relatifs. En outre, les tests unitaires de base de données peuvent échouer s'ils ne peuvent pas trouver l'instance de SQL Server que vous souhaitez utiliser pour les exécuter. Ce problème peut se produire si les chaînes de connexion stockées dans le fichier app.config ne sont pas valides à partir de l'ordinateur de build.
Pour résoudre ces problèmes, vous devez créer un fichier app.config à utiliser avec Team Foundation Build. Dans cet exemple, le fichier s'appelle app.TeamBuild.config. Dans ce fichier, vous devez indiquer les chemins d'accès et les chaînes de connexion corrects lorsque Team Foundation Build s'exécute sur l'ordinateur de build. Vous pouvez utiliser une cible après génération pour copier ce fichier dans NomAssembly.config. Lorsque le fichier est copié, vous remplacez alors le fichier .config qui contenait les valeurs utilisées lorsque les développeurs exécutaient les tests unitaires sur leurs ordinateurs de développement locaux.
Remarque : |
---|
Avant de pouvoir générer un projet de base de données, vous devez configurer l'instance de la base de données de validation au moment du design pour le compte de service sur l'ordinateur sur lequel vous exécutez Team Foundation Build. Vous pouvez configurer l'instance en exécutant Visual Studio comme compte de service sur l'ordinateur de build. Vous pouvez également utiliser la ligne de commande suivante pour créer l'entrée du Registre nécessaire, en remplaçant les espaces réservés par les noms de votre configuration: Runas /user:[DOMAIN\NomUtilisateurServiceBuild] "REG ADD HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\9.0\DBPro\DialogPage\Microsoft.VisualStudio.TeamSystem.Data.DBProject.Settings.DataConnectionOptionsSettings /v NomServerSql /d [NomInstanceLocale]" |
Création d'une liste de tests
Pour créer une liste de tests unitaires de base de données
Dans la liste Grouper par de la fenêtre Explorateur de tests, cliquez sur Nom complet de la liste de tests pour afficher le volet de listes de tests.
Cliquez avec le bouton droit sur Listes de tests, puis cliquez sur Nouvelle liste de tests.
La boîte de dialogue Créer une nouvelle liste de tests s'affiche.
Tapez le nom de la liste de tests qui contiendra vos tests unitaires de base de données. (Par exemple, tapez Tests unitaires de base de données.)
(Facultatif) Tapez une description de votre liste de tests unitaires de base de données et indiquez un emplacement dans la hiérarchie de listes de tests où insérer la nouvelle liste de tests.
Cliquez sur OK.
Votre liste de tests est créée et apparaît dans le volet de la hiérarchie de listes de tests.
Cliquez sur Tous les tests chargés pour afficher tous les tests de votre solution.
Faites glisser les tests à exécuter en tant que tests unitaires de base de données dans la liste de tests que vous venez de créer.
Remarque : Pour faire glisser plusieurs tests à la fois, appuyez sur la touche CTRL et maintenez-la enfoncée pendant que vous cliquez sur chaque test. Pour faire glisser un bloc contigu de tests, cliquez sur le premier test du bloc, puis appuyez sur la touche MAJ et maintenez-la enfoncée pendant que vous cliquez sur le dernier test du bloc. N'utilisez pas les cases à cocher pour cela.
(Facultatif) Pour vérifier le contenu de la liste de tests, cliquez dessus dans le volet de la hiérarchie de listes de tests.
La liste de tests que vous avez créée, ainsi que toutes les listes de tests répertoriées dans votre solution, réside dans le fichier de métadonnées de test de votre solution. Les fichiers de métadonnées de test ont l'extension .vsmdi. Pour plus d'informations, consultez Utilisation des listes de test.
Archivage de la liste de tests
Dans cette procédure, vous archivez tous les fichiers de votre solution. Ces fichiers comprennent le fichier de métadonnées de test de votre solution qui contient vos listes de tests et tests. Chaque fois que vous ajoutez, supprimez, réorganisez ou modifiez le contenu des listes de tests, votre fichier de métadonnées de test est mis à jour automatiquement de façon à refléter ces modifications.
Remarque : |
---|
Cette procédure décrit les étapes si vous utilisez le contrôle de version Team Foundation. Si vous utilisez un logiciel de contrôle de version différent, vous devez suivre la procédure appropriée à votre logiciel. |
Pour archiver la liste de tests
Connectez-vous à un ordinateur qui exécute Visual Studio Team System Team Foundation Server. Pour plus d'informations, consultez Comment : établir une connexion à Team Foundation Server.
Si votre solution ne s'y trouve pas déjà, ajoutez-la au contrôle de code source. Pour plus d'informations, consultez Comment : ajouter un projet ou une solution au contrôle de version.
Cliquez sur Affichage, puis sur Archivages en attente pour afficher la fenêtre Archivages en attente.
Archivez tous les fichiers de votre solution. Pour plus d'informations, consultez Comment : archiver les modifications en attente.
Remarque : Si vous utilisez Visual Studio Team System, vous pouvez avoir un processus d'équipe spécifique qui régit la façon dont les tests automatisés sont créés et gérés. Par exemple, le processus peut exiger que vous vérifiiez votre génération localement avant d'archiver ce code avec les tests qui seront exécutés dessus.
Une fois l'opération d'archivage terminée, une icône de cadenas s'affiche en regard de chaque fichier dans l'Explorateur de solutions pour indiquer que le fichier est archivé.
Vos tests archivés sont accessibles par la fonctionnalité Team Foundation Build de Visual Studio Team System. Vous pouvez à présent créer une définition de build qui contient les tests à exécuter.
Créer une définition de build
Pour créer une définition de build
Dans Team Explorer, cliquez sur votre projet d'équipe.
Cliquez avec le bouton droit sur Builds, puis cliquez sur Nouvelle définition de build.
La boîte de dialogue Définition de build s'affiche.
Complétez les sections de la boîte de dialogue Définition de build. Pour plus d'informations, consultez Comment : créer une définition de build.
Remarque importante : Team Foundation Build utilise un fichier projet MSBuild. Dans les options du projet MSBuild, vous devez activer la case à cocher Exécuter le test et spécifier le fichier de métadonnées de test qui contient la liste de tests créée à la section Création d'une liste de tests. Enfin, vous devez spécifier la liste de tests qui contient les tests à exécuter.
Lorsque vous avez fini d'entrer des informations dans l'Assistant, cliquez sur Terminer.
Votre nouvelle définition de build apparaît dans la fenêtre Team Explorer sous le dossier Builds.
Modification du projet de test
Par défaut, Team Foundation Build crée un fichier de configuration à partir du fichier app.config du projet lorsqu'il génère le projet des tests unitaires. Les chemins d'accès au plan de génération de données et au projet de base de données sont stockés en tant que chemins d'accès relatifs dans le fichier app.config. Les chemins d'accès relatifs qui fonctionnent dans Visual Studio ne fonctionneront pas, car Team Foundation Build place les fichiers de build dans des emplacements différents par rapport à l'emplacement où vous exécutez les tests unitaires. En outre, votre fichier app.config contient les chaînes de connexion spécifiant la base de données à tester. Un fichier app.config distinct est également nécessaire pour Team Foundation Build si les tests unitaires doivent se connecter à une base de données autre que celle utilisée à la création du projet de test. En effectuant les modifications décrites dans la procédure suivante, vous pouvez configurer votre projet de test et le serveur de build de sorte que Team Foundation Build utilise une configuration différente.
Remarque importante : |
---|
Vous devez exécuter cette procédure pour chaque projet de test (.vbproj ou .vsproj). |
Pour utiliser un autre fichier app.config pour Team Foundation Build
Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le fichier du projet de test (.vbproj ou .csproj) à modifier, puis cliquez sur Extraire pour modification.
La boîte de dialogue Extraire s'affiche.
Cliquez sur Extraire.
Dans le menu Fichier, cliquez sur Fermer la solution.
Vous devez fermer la solution, sinon il n'est pas possible de modifier le fichier projet.
Remarque : Vous pouvez également décharger le projet, puis le recharger après l'avoir modifié.
Dans le menu Fichier, pointez sur Ouvrir, puis cliquez sur Fichier.
Parcourez le fichier du projet de test à partir de l'étape 1, puis double-cliquez dessus pour l'ouvrir dans l'éditeur.
Allez au bas du fichier, puis ajoutez la ligne suivante après l'élément commençant par "<Import Project=" et qui importe le fichier .Targets Visual Basic ou Visual C# :
<Import Condition="'$(TeamBuildConstants)' != ''" Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v8.0\TeamData\Microsoft.VisualStudio.TeamSystem.Data.TeamBuild.targets"/> <Target Name="AfterBuild" DependsOnTargets="$(AfterBuildTeamBuildTargets)"> </Target>
Dans le menu Fichier, cliquez sur Enregistrer NomFichier.
Sur l'ordinateur sur lequel est exécuté Team Foundation Build, accédez au dossier %ProgramFiles%\MSBuild\Microsoft\VisualStudio\v9.0\TeamData.
Dans ce dossier, créez le fichier Microsoft.VisualStudio.TeamSystem.Data.TeamBuild.Targets avec le contenu suivant :
<?xml version="1.0" encoding="utf-8"?> <Project xmlns="https://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup> <AfterBuildTeamBuildTargets>RenameTeamBuildConfig</AfterBuildTeamBuildTargets> </PropertyGroup> <ItemGroup> <__TeamBuildConfig Include="$(OutDir)$(TargetFileName).config"/> </ItemGroup> <Target Name="RenameTeamBuildConfig"> <CreateItem Include="app.TeamBuild.config"> <Output ItemName="TeamBuildAppConfig" TaskParameter="Include" /> </CreateItem> <Copy SourceFiles="@(TeamBuildAppConfig)" DestinationFiles="@(__TeamBuildConfig)" /> </Target> </Project>
Remarque : Si vous attribuez à votre fichier de configuration un nom autre que app.TeamBuild.config, vous devez remplacer le nom dans XML.
Copiez le fichier app.config de votre projet de test dans un fichier nommé app.teambuild.config.
Personnalisez les paramètres des chemins d'accès relatifs et des chaînes de connexion dans le fichier app.teambuild.config afin d'avoir les valeurs que vous souhaitez utiliser lorsque vous exécutez les tests unitaires de base de données sous Team Foundation Build.
Archivage des projets de test mis à jour
Pour archiver la définition de build mise à jour
- Répétez les étapes de la procédure Pour archiver la liste de tests pour archiver les modifications apportées au fichier du projet de test (.vbproj, .csproj).
Exécution du nouveau type de build
Pour exécuter le nouveau type de build
Dans le menu Générer, cliquez sur Mettre en file d'attente la build {NomProjetÉquipe}.
La boîte de dialogue Générer {NomProjetÉquipe} s'affiche avec une liste de tous les types de build existants.
Si nécessaire, dans Définition de build, cliquez sur la nouvelle définition de build.
Confirmez que les valeurs qui figurent dans les champs Définition de build, Agent de build et Dossier cible pour cette build sont toutes appropriées, puis cliquez sur File d'attente.
L'onglet En attente de l'Explorateur de builds s'affiche. Pour plus d'informations, consultez Fonctionnement de l'Explorateur Team Foundation Build.
Voir aussi
Tâches
Comment : classer des tests dans des listes de tests
Comment : créer une définition de build
Comment : déployer des modifications à l'aide de Team Foundation Build
Comment : démarrer ou mettre en file d'attente une définition de build