Partager via


Procédure pas à pas : établissement d'une planification initiale pour l'environnement de développement isolé

Mise à jour : novembre 2007

Dans cette procédure pas à pas, un projet de base de données a été créé et mis sous contrôle de version. Le projet de base de données contient une définition de schéma qui correspond à celle d'un serveur de production. Avant que le travail de développement sur ce projet de base de données ne commence, vous voulez établir une planification initiale de qualité en configurant des tests unitaires de base de données, en définissant un plan de génération de données, en générant des données de test, puis en exécutant ces tests. Une série de tests générera et déploiera la base de données dans votre environnement de développement isolé, remplira la base de données avec les données générées et exécutera des tests unitaires pour rapporter les résultats.

Cette procédure pas à pas illustre les tâches suivantes :

  • Personnalisation de paramètres de génération pour votre environnement de développement isolé

  • Génération et déploiement de la base de données dans votre environnement de développement isolé

  • Définition d'un test unitaire pour une procédure stockée contenue par le projet de base de données

  • Génération de données de test, et génération et exécution des tests unitaires

  • Partage des tests unitaires avec l'équipe de développement en les plaçant sous contrôle de version dans le cadre de la solution

Composants requis

Visual Studio Team System Database Editiondoit être installé et vous devez avoir accès à l'exemple de base de données AdventureWorks pour Microsoft SQL Server 2005. De plus, vous devoir avoir exécuté les étapes de la Procédure pas à pas : création d'un environnement de développement de base de données isolé.

Pour personnaliser des paramètres de génération pour votre environnement de développement isolé

  1. Si la solution AdvWorksSandbox est ouverte dans l'Explorateur de solutions, passez à l'étape 4.

  2. Dans le menu Fichier, pointez sur Ouvrir, puis cliquez sur Projet/Solution.

    La boîte de dialogue Ouvrir un projet s'affiche.

  3. Cliquez sur la solution AdvWorksSandbox, puis sur Ouvrir. (Par défaut, cette solution se trouve dans Mes documents\Visual Studio 2005\Projects\AdvWorksSandbox.)

    La solution AdvWorksSandbox s'ouvre dans l'Explorateur de solutions.

  4. Dans l'Explorateur de solutions, cliquez sur le nœud AdvWorksSandbox.

  5. Dans le menu Projet, cliquez sur Propriétés AdvWorksSandbox .

  6. Cliquez sur l'onglet Générer.

  7. Cliquez sur Modifier à côté de Connexion cible.

    La boîte de dialogue Propriétés de connexion s'affiche.

    Vous pouvez alors personnaliser la chaîne de connexion pour votre environnement de développement isolé local. Le processus recommandé consiste à ce que chaque développeur de base de données travaille dans sa propre copie de la base de données, ce qui lui permet d'apporter des modifications sans affecter de façon négative le reste de l'équipe. Lorsque le développeur a testé les modifications apportées et qu'il est prêt à les partager avec l'équipe, il partage ces modifications par l'intermédiaire du système de contrôle de version central. Dans la Procédure pas à pas : création d'un environnement de développement de base de données isolé, le nom de la base de données cible a été défini, mais pas la connexion.

  8. Tapez le nom du serveur que vous voulez utiliser pour votre environnement de développement isolé, ou cliquez dessus. Par exemple, pour utiliser votre instance locale, tapez (local).

  9. Cliquez sur le type d'authentification que vous voulez utiliser pour vous connecter au serveur de base de données.

    Par défaut, l'authentification Windows est spécifiée.

  10. Cliquez sur OK.

    La connexion cible affiche les informations de connexion.

  11. Dans le menu Fichier, cliquez sur Enregistrer les éléments sélectionnés pour enregistrer les modifications que vous avez apportées aux propriétés du projet de base de données.

Pour générer et déployer la base de données dans votre environnement de développement isolé

  1. Dans le menu Générer, cliquez sur Générer la solution.

    Votre projet de base de données est généré et les résultats s'affichent dans la fenêtre Sortie.

  2. Dans l'Explorateur de solutions, cliquez sur le nœud AdvWorksSandbox.

  3. Dans le menu Générer, cliquez sur DéployerNomProjet. Vous pouvez également cliquer avec le bouton droit sur le nœud AdvWorksSandbox, puis cliquer sur Déployer.

    Le projet de base de données est généré, il génère un script de compilation, puis il déploie ce script sur le serveur de développement de base de données isolé que vous avez spécifié dans les propriétés de projet de base de données. Vous générerez ensuite des données de test pour votre environnement de développement isolé.

Définir des tests unitaires

En général, vous définissez des tests unitaires pour toutes les procédures stockées, toues les fonctions et tous les déclencheurs. Dans cette procédure pas à pas, vous définissez un seul test unitaire à titre d'exemple. Vous définissez un test pour la fonction ufnLeadingZeros et la procédure stockée dbo.uspGetManagerEmployees.

La fonction ufnLeadingZeros accepte un entier et retourne une représentation sous forme de chaîne VARCHAR(8) de cet entier complétée par des zéros non significatifs. Pour tester cette fonction, vous pouvez passer une valeur et vérifier que vous obtenez le résultat attendu.

Un identificateur d'employé est passé à la procédure stockée uspGetManagerEmployees, laquelle retourne tous les employés qui sont rapportés par le gestionnaire et dont vous avez spécifié l'identificateur (la hiérarchie complète). Étant donné que le générateur de données produira les mêmes données de test si la même valeur de départ est donnée, vous pouvez savoir le nombre de lignes qui seront retournées. Ce test est très simple. Dans un projet réel, vous créeriez des tests plus détaillés afin de vérifier que les employés appropriés ont été retournés.

Pour créer des tests unitaires

  1. Dans le menu Affichage, cliquez sur Vue Schéma.

    La vue Schéma s'affiche si elle ne l'était pas déjà.

  2. Dans la vue Schéma, cliquez avec le bouton droit sur le dossier Procédures stockées; puis cliquez sur Créer des tests unitaires.

    La boîte de dialogue Créer des tests unitaires s'affiche.

  3. Développez l'arborescence Sélection actuelle, puis activez les cases à cocher correspondant à la procédure stockée dbo.uspGetManagerEmployees et à la fonction dbo.ufnLeadingZeros. Désactivez les cases à cocher correspondant à toutes autres procédures stockées ou fonctions qui sont sélectionnées.

    Remarque :

    Pour établir une planification initiale réelle pour votre projet, vous devez créer des tests unitaires pour toutes les fonctions, toues les procédures stockées et tous les déclencheurs dans votre base de données. Cette procédure pas à pas se concentre sur une procédure stockée et une fonction afin de décrire le processus.

  4. Dans Projet, cliquez sur « Créer un nouveau projet de test Visual C#... ».

  5. Dans Nouveau nom du projet, tapez AWSandboxTestProject, puis cliquez sur OK.

    Le projet de test unitaire est créé, et la boîte de dialogue Configuration du projet s'affiche pour des tests unitaires.

  6. Dans Connexions de base de données, cliquez sur la connexion correspondant à AdvWorksSandbox.

  7. Dans Déploiement, activez la case à cocher Déployer automatiquement le projet de base de données avant d'exécuter les tests.

  8. Dans Projet de base de données, cliquez sur AdvWorksSandbox.dbproj.

  9. Dans État de la base de données, activez la case à cocher Générer les données de test avant l'exécution des tests unitaires.

  10. Dans la liste État de la base de données, cliquez sur AWGenPlan.dgen.

  11. Activez la case à cocher Effacer la base de données avant de générer les données de test si elle ne l'est pas déjà, puis cliquez sur OK.

    Le projet de test unitaire de base de données est créé et ajouté à la solution. Le Concepteur de test unitaire de base de données s'ouvre afin que vous puissiez modifier les conditions de test et créer vos tests.

    Remarque :

    Si vous devez modifier la configuration de test, ouvrez le menu Test, puis cliquez sur Configuration de test de base de données. La boîte de dialogue Configuration du projet s'affiche, et vous pouvez modifier les configurations.

    Vous allez ensuite spécifier des conditions de test et écrire les tests.

Pour définir un test unitaire pour la fonction ufnLeadingZeros

  1. Dans le Concepteur de test unitaire de base de données, dans la liste de tests, cliquez sur dbo.ufnLeadingZeros.

  2. Vérifiez que la deuxième liste affiche « Test ».

  3. Remplacez les instructions Transact-SQL (T-SQL) dans le volet supérieur du concepteur par les éléments suivants :

    -- db unit test for dbo.ufnLeadingZeros
    DECLARE @RC VARCHAR (8),
    @Value INT
    
    SELECT @RC = NULL,
    @Value = 27
    
    SELECT @RC = [dbo].[ufnLeadingZeros]( @Value)
    
    IF @RC <> '00000027' 
    RAISERROR(N'ufnLeadingZero: expected "00000027" but got %s.', 16, 1, @RC)
    
    SELECT RC=@RC
    
  4. Dans le volet Conditions de test, cliquez sur la condition de test dont le type est Non concluant, puis supprimez-la en cliquant sur Supprimer la condition de test (x).

  5. Ajoutez une condition de test du nombre de lignes en cliquant sur Nombre de lignes dans la liste affichée dans le volet Conditions de test, puis en cliquant sur Ajouter une condition de test (+).

  6. Dans la fenêtre Propriétés, affectez 1 à la propriété Nombre de lignes.

    Si vous voulez forcer l'échec du test, remplacez la valeur 27 de @Value par autre valeur.

Pour définir un test unitaire pour la procédure stockée uspGetManagerEmployees

  1. Dans le Concepteur de test unitaire de base de données, dans la liste de tests, cliquez sur dbo.uspGetManagerEmployees.

  2. Vérifiez que la deuxième liste affiche « Test ».

    Les instructions Transact-SQL (T-SQL) affichée le volet supérieur du concepteur doivent être les suivantes :

    -- db unit test for dbo.uspManagerEmployees
    DECLARE @RC VARCHAR (8),
    @ManagerID INT
    
    SELECT @RC = NULL,
    @ManagerID = 1
    
    EXEC @RC = [dbo].[uspGetManagerEmployees]( @ManagerID )
    
    SELECT RC=@RC
    
  3. Dans le volet Conditions de test, cliquez sur la condition de test dont le type est Non concluant, puis supprimez-la en cliquant sur Supprimer la condition de test (x).

  4. Ajoutez une condition de test du nombre de lignes en cliquant sur Nombre de lignes dans la liste affichée dans le volet Conditions de test, puis en cliquant sur Ajouter une condition de test (+).

  5. Dans la fenêtre Propriétés, affectez 11 à la propriété Nombre de lignes.

    Remarque :

    Pour déterminer la valeur de paramètre pour la procédure stockée et le résultat attendu, vous pouvez utiliser l'éditeur Transact-SQL (T-SQL) et inspecter le contenu de la table [HumanResources].[Employee] après la génération des données. Dans le cas présent, l'employé dont EmployeeID a la valeur 1 se trouve en haut d'une hiérarchie de 11 personnes. Par conséquent, la procédure stockée doit retourner 11 lignes de données. Tant que vous générez les données de test avec la même valeur de départ, vous devez obtenir les mêmes données à chaque exécution.

    Vous êtes maintenant prêt à exécuter vos tests unitaires.

Générer et exécuter des tests unitaires

Maintenant que vous avez défini des tests unitaires, vous pouvez les générer et les exécuter.

Pour générer et exécuter les tests unitaires

  1. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le nœud de solution, puis cliquez sur Régénérer la solution.

    Cette étape force une régénération du projet de base de données et du projet de test unitaire afin de garantir que tout est valide.

  2. Dans le menu Test, pointez sur Fenêtres, puis cliquez sur Affichage de tests.

    La fenêtre Affichage de tests répertorie plusieurs tests. Les tests nommés ManualTest1 et TestMethod1 sont créés par défaut. Les tests nommés dbo_uspGetManagerEmployeesTest et dbo_ufpLeadingZeroTest sont ceux que vous avez créés dans cette procédure pas à pas.

  3. Activez les cases à cocher correspondant à dbo_uspGetManagerEmployeesTest et dbo_ufpLeadingZeroTest, cliquez sur l'un ou l'autre avec le bouton droit, puis cliquez sur Exécuter la sélection.

  4. Consultez les résultats des tests dans la fenêtre Résultats des tests.

    Le projet de base de données est déployé dans votre environnement de développement isolé, les données de test sont générées, et le reste s'exécutera avec succès.

Archiver des modifications en attente

Maintenant que vous avez défini des tests unitaires afin de détecter si des modifications provoquent une rupture de votre base de données, vous pouvez archiver vos tests et partager la solution avec l'équipe.

Pour partager la solution avec l'équipe

  1. Dans le menu Affichage, pointez sur Autres fenêtres, puis cliquez sur Modifications en attente.

    La fenêtre Modifications en attente s'affiche.

  2. Dans Commentaire, tapez Plan de génération de données et tests unitaires de données de base de planification initiale.

  3. Dans la fenêtre Modifications en attente, cliquez sur Archiver dans la barre d'outils.

    La boîte de dialogue Progression de l'archivage s'affiche lorsque le projet de base de données et les fichiers qu'il contient sont mis sous contrôle de version. Les icônes de l'Explorateur de solutions sont mises à jour pour montrer que les fichiers sont archivés dans le contrôle de version.

Étapes suivantes

Maintenant que vous avez archivé la solution dans le contrôle de version, chaque membre de l'équipe peut travailler sur les tâches qui lui ont été assignées. Chaque personne peut travailler dans son propre environnement de développement de base de données isolé jusqu'à ce que les modifications qu'il apporte soient prêtes à être partagées. Dans la Procédure pas à pas : exécution d'un développement de base de données itératif dans un environnement isolé, vous utilisez la refactorisation pour renommer des objets de base de données dans votre environnement de développement isolé. Vous générez, déployez, et testez les modifications apportées avant de les archiver afin que d'autres membres de l'équipe puissent se synchroniser avec elles.

Voir aussi

Tâches

Procédure pas à pas : exécution d'un développement de base de données itératif dans un environnement isolé

Concepts

Vue d'ensemble des paramètres de projet de base de données

Vue d'ensemble de la génération et du déploiement d'une base de données

Vue d'ensemble de la terminologie de Database Edition

Autres ressources

Vue d'ensemble de la génération de données

Vue d'ensemble du test unitaire de base de données