Partager via


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

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 décrit les tâches suivantes :

  1. Personnalisation de paramètres de déploiement pour votre environnement de développement isolé.

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

  3. Création d'un plan de génération de données et personnalisation de celui-ci pour générer des données de test plus réalistes.

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

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

  6. 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

Pour définir des tests unitaires de base de données et créer, modifier et exécuter un plan de génération de données, vous devez installer Visual Studio Premium ou Visual Studio Ultimate et avoir accès à l'exemple de base de données AdventureWorks2008 pour SQL Server 2008 (ou l'exemple de base de données AdventureWorks2008R2 pour SQL Server 2008 R2). De plus, vous devoir avoir exécuté les étapes de la section 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. (L'emplacement par défaut de cette solution est Mes documents\Visual Studio 2010\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 Déployer.

  7. Dans la liste déroulante Configurer les paramètres de déploiement pour, sélectionnez Mon environnement de développement isolé.

    Notes

    Les paramètres de déploiement que vous définissez pour votre environnement de développement isolé sont stockés dans le fichier .user situé dans le dossier dans lequel se trouve le projet de base de données. Le fichier .user n'est pas archivé dans le contrôle de version. Cette conception permet à chaque développeur de configurer des paramètres pour leur environnement de développement isolé.

  8. 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é est que chaque développeur de base de données mette à jour une copie privée de la base de données de sorte que les modifications ne puissent pas avoir un impact négatif sur 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.

  9. 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).

    Important

    Une erreur se produit si vous déployez la base de données de développement isolée sur le même serveur que celui sur lequel vous avez effectué le déploiement de la procédure pas à pas préalable (). L'erreur se produit car vous avez déjà créé le fichier. Vous pouvez résoudre ce problème en modifiant le paramètre FILENAME dans le fichier FileStreamDocuments.sqlfile.sql (ou, pour SQL Server 2008 R2, FileStreamDocuments2008R2.sqlfile.sql). Modifiez le paramètre pour qu'il corresponde au code suivant : FILENAME = '$(DefaultDataPath)SandboxDocuments-IDE')

  10. 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.

  11. Cliquez sur OK.

    La connexion cible affiche les informations de connexion.

  12. 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éployer NomProjet. 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 déploiement, 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 devez ensuite générer des données de test pour votre environnement de développement isolé.

Générer des données de test

Maintenant que vous avez une base de données isolée sur laquelle vous pouvez effectuer un développement, vous devez tester des données qui peuvent piloter vos tests unitaires. Vous commencez par créer un plan de génération de données par défaut, puis vous personnalisez ce plan de produire des données plus réalistes. Dans cet exemple, vous configurez la génération de données pour uniquement un sous-ensemble de tables et de colonnes de la base de données. Vous configurerez la génération de données pour la table Employee et la table StateProvince.

Les données d'origine du tableau StateProvince ne sont pas sensibles. Par conséquent, vous pouvez les utiliser pour remplir la base de données de développement isolée.

Toutefois, vous devez apporter les modifications suivantes au plan de génération par défaut pour la table Employee :

  • Title doit avoir l'une des valeurs suivantes : Developer, Sr. Developer, Tester, Sr. Tester, Project Manager, Sales Associate ou Sr. Sales Associate.

  • La valeur Birthdate doit être une date au moins antérieure à 18 ans et non antérieure au 1er janvier 1930. Cette spécification correspond à la contrainte définie sur la colonne dans la base de données.

  • Marital Status doit avoir la valeur "M" ou "S".

  • Gender doit avoir la valeur "M" ou "F".

  • HireDate doit être une date égale ou antérieure à la date du jour, et égale ou ultérieure au 1er janvier 2000.

  • VacationHours doit avoir une répartition classique dans une plage comprise entre -10 et 160.

  • ModifiedDate doit être une date égale ou antérieure à la date du jour, et égale ou ultérieure au 1er janvier 2000. La plupart des enregistrements auront été mis à jour récemment.

  • AdditionalContactInfo et Demographics dans la table Person doivent venir de la base de données AdventureWorks source.

Pour créer un plan de génération de données

  1. Dans l'Explorateur de solutions, développez le nœud AdvWorksSandbox, puis cliquez sur le dossier Plans de génération de données.

  2. Dans le menu Projet, cliquez sur Ajouter un nouvel élément.

    La boîte de dialogue Ajouter un nouvel élément s'affiche.

  3. Dans la liste Catégories, cliquez sur Plan de génération de données.

  4. Dans la liste Modèles, cliquez sur Plan de génération de données.

  5. Dans la zone Nom, tapez AWGenPlan.dgen, puis cliquez sur Ajouter.

    Un plan de génération de données nommé AWGenPlan est ajouté au projet de base de données et ouvert dans l'éditeur. Le schéma de base de données est importé dans le plan de génération de données.

    Vous devez ensuite modifier AWGenPlan pour générer plus de données de test réalistes.

Pour limiter la génération de données aux tables présentant un intérêt

  1. Cliquez avec le bouton droit dans le plan de génération de données, puis cliquez sur Exclure toutes les tables de la génération de données.

  2. Dans le plan de génération de données, activez les cases à cocher correspondant aux tables suivantes : HumanResources.Employee, Person.Person, Person.CountryRegion et Person.StateProvince.

    Vous devez ensuite définir le plan de génération de données pour la table StateProvince.

Pour définir le plan de génération de données pour la table StateProvince

  1. Cliquez sur [Person].[StateProvince] dans le plan de génération de données.

  2. Dans le volet Détails de la colonne, cliquez sur StateProvinceCode, puis affectez la valeur Générateur lié aux données séquentiel au champ Générateur.

    Cette étape indique que vous voulez remplir cette colonne avec les résultats d'une requête.

  3. Dans le menu Affichage, cliquez sur Fenêtre Propriétés.

  4. Dans la section Générateur de la fenêtre Propriétés, dans la propriété Connection Information, cliquez sur la connexion qui correspond à la base de données à partir de laquelle vous avez importé le schéma de base de données dans une procédure précédente.

    Cette étape spécifie la connexion de base de données que vous voulez utiliser pour exécuter la requête qui générera des données pour cette colonne.

  5. Dans la section Générateur de la fenêtre Propriétés, dans la propriété Select Query, affectez SELECT [StateProvinceCode] FROM [Person].[StateProvince] à la chaîne de requête.

  6. Dans le volet Détails de la colonne, cliquez sur Date de modification.

  7. Dans la section Générateur de la fenêtre Propriétés, affectez à la propriété Max la date du jour car les enregistrements n'ont pas pu être modifiés à une date ultérieure.

  8. Dans la section Générateur de la fenêtre Propriétés, affectez 1/1/2000 12:00:00 AM à la propriété Min. Pour cet exemple, supposez que la société a commencé à collecter des données au début de l'an 2000.

    Vous devez ensuite spécifier le plan de génération de données pour la table Person.

Pour définir le plan de génération de données pour la table Person

  1. Cliquez sur [Person].[Person] dans le plan de génération de données.

  2. Dans le volet Détails de la colonne, cliquez sur PersonType, puis affectez la valeur Expression régulière au champ Générateur.

  3. Dans la fenêtre Propriétés, de la section Générateur, affectez (GC|SP|EM|IN|VC|SC) à la propriété Expression.

  4. Dans le volet Détails de la colonne, cliquez sur AdditionalContactInfo, puis affectez la valeur Générateur lié aux données séquentielles au champ Générateur.

    Cette étape indique que vous voulez remplir cette colonne avec les résultats d'une requête.

  5. Dans le menu Affichage, cliquez sur Fenêtre Propriétés.

  6. Dans la section Générateur de la fenêtre Propriétés, dans la propriété Connection Information, cliquez sur la connexion qui correspond à la base de données à partir de laquelle vous avez importé le schéma de base de données dans une procédure précédente.

    Cette étape spécifie la connexion de base de données que vous voulez utiliser pour exécuter la requête qui générera des données pour cette colonne.

  7. Dans la section Générateur de la fenêtre Propriétés, dans la propriété Query Select Query, affectez SELECT * FROM [Person].[Person] à la chaîne de requête.

  8. Dans le volet Détails de la colonne, dans le champ Sortie du générateur pour AdditionalContactInfo, cliquez sur [AdditionalContactInfo].

    Cette étape sélectionne la colonne du jeu de résultats que vous voulez associer à cette colonne.

  9. Dans le volet Détails de la colonne, cliquez sur Demographics, puis affectez la valeur Générateur lié aux données séquentielles au champ Générateur.

    Cette étape indique que vous voulez remplir cette colonne avec les résultats d'une requête.

  10. Dans le menu Affichage, cliquez sur Fenêtre Propriétés.

  11. Dans la section Générateur de la fenêtre Propriétés, dans la propriété Connection Information, cliquez sur la connexion qui correspond à la base de données à partir de laquelle vous avez importé le schéma de base de données dans une procédure précédente.

    Cette étape spécifie la connexion de base de données que vous voulez utiliser pour exécuter la requête qui générera des données pour cette colonne.

  12. Dans la section Générateur de la fenêtre Propriétés, dans la propriété Query Select Query, affectez SELECT * FROM [Person].[Person] à la chaîne de requête.

  13. Dans le volet Détails de la colonne, dans le champ Sortie du générateur pour Demographics, cliquez sur [Demographics].

    Cette étape sélectionne la colonne du jeu de résultats que vous voulez associer à cette colonne.

  14. Dans le volet Détails de la colonne, cliquez sur Date de modification.

  15. Dans la section Générateur de la fenêtre Propriétés, affectez à la propriété Max la date du jour car les enregistrements n'ont pas pu être modifiés à une date ultérieure.

  16. Dans la section Générateur de la fenêtre Propriétés, affectez 1/1/2000 12:00:00 AM à la propriété Min. Pour cet exemple, supposez que la société a commencé à collecter des données au début de l'an 2000.

    Vous devez ensuite spécifier le plan de génération de données pour la table Employee.

Pour définir le plan de génération de données pour la table Employee

  1. Cliquez sur [HumanResources].[Employee] dans le plan de génération de données.

  2. Dans le volet Détails de la colonne, cliquez sur JobTitle, puis affectez RegularExpression au champ Générateur.

  3. Dans la section Générateur de la fenêtre Properties, affectez à la propriété Expression la valeur (Developer|Sr\. Developer|Tester|Sr\. Tester|Project Manager|Sales Associate|Sr\. Sales Associate).

  4. Dans le volet Détails de la colonne, cliquez sur BirthDate.

    Par défaut, le champ Générateur a la valeur DateTime2.

  5. Dans la section Générateur de la fenêtre Propriétés, affectez à la propriété Max une date correspondant à 18 ans avant la date du jour (par exemple, 10/30/1987 11:59:59 PM). Affectez également 1/1/1930 12:00:00 AM à la propriété Min.

  6. Dans le volet Détails de la colonne, cliquez sur MaritalStatus, puis affectez RegularExpression au champ Générateur.

  7. Dans la section Générateur de la fenêtre Propriétés, affectez (M|S) à la propriété Expression.

  8. Dans le volet Détails de la colonne, cliquez sur Gender, puis affectez RegularExpression au champ Générateur.

  9. Dans la section Générateur de la fenêtre Propriétés, affectez (M|F) à la propriété Expression.

  10. Dans le volet Détails de la colonne, cliquez sur HireDate.

    Par défaut, le champ Générateur a la valeur DateTime2.

  11. Dans la section Générateur de la fenêtre Propriétés, affectez à la propriété Max la date du jour (par exemple,10/30/2006 11:59:59 PM). Affectez également 1/1/2000 12:00:00 AM à la propriété Min.

  12. Dans le volet Détails de la colonne, cliquez sur VacationHours.

    Par défaut, le champ Générateur a la valeur SmallInt.

  13. Dans la section Générateur de la fenêtre Propriétés, affectez Normal à la propriété Distribution.

  14. Dans la section Générateur de la fenêtre Propriétés, affectez 160 à la propriété Max et -10 à la propriété Min.

  15. Dans le volet Détails de la colonne, cliquez sur ModifiedDate.

    Par défaut, le champ Générateur a la valeur DateTime2.

  16. Dans la section Générateur de la fenêtre Propriétés, affectez ExponentialInverse à la propriété Distribution. Affectez également la date du jour à la propriété Max (par exemple, 10/30/2006 11:59:59 PM) et 1/1/2000 12:00:00 AM à la propriété Min.

Pour ajuster le nombre des lignes qui sont générées

  1. Cliquez sur [Person].[CountryRegion] dans le plan de génération de données.

  2. Dans le champ Lignes à insérer, tapez 10.

  3. Cliquez sur [HumanResources].[Employee] dans le plan de génération de données.

  4. Dans le champ Lignes à insérer, tapez 25.

  5. Cliquez sur [Person].[StateProvince] dans le plan de génération de données.

  6. Dans le champ Table associée, cliquez sur [Person].[CountryRegion].

  7. Dans le champ Ratio pour la table associée, tapez 2:1.

    Cette étape spécifie que vous voulez générer deux fois plus de lignes pour la table [Person].[StateProvince] que pour la table [Person].[CountryRegion].

  8. Dans le menu Fichier, cliquez sur Enregistrer AWGenPlan.dgen pour enregistrer les modifications apportées au plan de génération de données.

Pour afficher un aperçu de la génération de données et générer des données de test

La table HumanResources.Employee contient des déclencheurs qui peuvent interférer avec la génération de données si vous exécutez la génération de données plusieurs fois. Pour exécuter la génération de données dans le cadre d'une série de tests automatisés, vous devez désactiver (et ultérieurement activer) ces déclencheurs dans le cadre de vos tests unitaires.

Pour exécuter plusieurs fois la génération de données dans le cadre de cette procédure, vous devez suivre la procédure Pour désactiver et activer des déclencheurs dans la table Employee autour de la génération de données. Pour exécuter une seule fois la génération de données, suivez la procédure Pour vérifier les résultats du plan de génération de données.

Pour afficher un aperçu de la génération de données et générer des données de test

  1. Dans le menu Données, pointez sur Générateur de données, puis cliquez sur Afficher un aperçu de la génération de données.

    La fenêtre Aperçu de la génération de données qui s'affiche présente un exemple des données qui seront générées. Si les données répondent aux critères que vous avez spécifiés, passez à l'étape suivante. Si vous devez ajuster le plan de génération de données, apportez les modifications appropriées, puis répétez cette étape.

  2. Dans le menu Données, pointez sur Générateur de données, puis cliquez sur Générer les données.

    La boîte de dialogue Générer les données pour la base de données cible s'affiche.

  3. Dans Base de données cible, créez une connexion à la base de données AdvWorksSandbox, puis cliquez sur OK.

  4. Quand le message "Souhaitez-vous supprimer les données existantes des tables avant de générer de nouvelles données ?" s'affiche, cliquez Oui.

    Les données sont générées en fonction de vos spécifications. Lorsque la génération est terminée, une coche verte apparaît dans chaque ligne pour indiquer que toutes les données ont été générées correctement. Si des données n'ont pas été générées, des erreurs apparaissent dans la fenêtre Liste d'erreurs.

  5. Passez à la procédure « Pour vérifier les résultats du plan de génération de données ».

Pour désactiver et activer des déclencheurs dans la table Employee autour de la génération de données

  1. Avant de générer des données, ouvrez le menu Données, pointez sur Transact-SQL Editor, puis cliquez sur Nouvelle connexion à la requête.

  2. S'il existe une connexion pour la base de données dans votre environnement de développement isolé, passez à l'étape 7.

  3. Cliquez sur Nouvelle connexion.

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

  4. Dans Nom du serveur, tapez le nom du serveur de base de données sur lequel vous avez déployé la base de données, tel que (local)\SQLExpress, ou cliquez dessus.

  5. Dans Connexion au serveur, cliquez sur Utiliser l'authentification Windows.

  6. Dans Connexion à la base de données, cliquez sur Sélectionner ou entrer un nom de base de données, tapez AdvWorksSandbox, puis cliquez sur OK.

    La connexion est créée et ajoutée à la liste dans la boîte de dialogue Connexion à une base de données.

  7. Dans la boîte de dialogue Connexion à une base de données, cliquez sur la chaîne de connexion qui correspond à la base de données dans votre environnement de développement isolé, puis cliquez sur OK.

    L'éditeur Transact-SQL s'affiche, avec une connexion active à la base de données AdvWorksSandbox.

  8. Cliquez sur OK.

    L'éditeur Transact-SQL s'affiche.

  9. Dans l'éditeur Transact-SQL, saisissez les éléments Transact-SQL suivants :

    DISABLE TRIGGER [HumanResources].[dEmployee] ON [HumanResources].[Employee]
    GO
    
  10. Dans la barre d'outils de l'éditeur Transact-SQL, cliquez sur Exécuter SQL.

    Sous l'onglet Messages, les éléments suivants apparaissent :

    L'exécution des commandes s'est bien déroulée.

  11. Cliquez sur la fenêtre qui contient le plan de génération de données.

  12. Dans le menu Données, pointez sur Générateur de données, puis cliquez sur Afficher un aperçu de la génération de données.

    La fenêtre Aperçu de la génération de données qui s'affiche présente un exemple des données qui seront générées. Si les données répondent aux critères que vous avez spécifiés, passez à l'étape suivante. Si vous devez ajuster le plan de génération de données, apportez les modifications appropriées, puis répétez cette étape.

  13. Dans le menu Données, pointez sur Générateur de données, puis cliquez sur Générer les données.

    La boîte de dialogue Générer les données pour la base de données cible s'affiche.

  14. Dans Base de données cible, cliquez sur la connexion à la base de données AdvWorksSandbox, puis sur OK.

  15. Lorsque le message "Voulez-vous effacer le contenu des tables sélectionnées avant d'insérer de nouvelles lignes ?" s'affiche, cliquez sur Oui.

    Les données sont générées en fonction de vos spécifications. Lorsque la génération est terminée, une coche verte apparaît dans chaque ligne pour indiquer que toutes les données ont été générées correctement. Si des données n'ont pas été générées, des erreurs apparaissent dans la fenêtre Liste d'erreurs.

  16. Cliquez sur la fenêtre de l'éditeur Transact-SQL.

  17. En général, vous devez alors réactiver vos déclencheurs. Toutefois, pour simplifier les tests unitaires de base de données et qu'ils n'aient pas besoin de désactiver puis réactiver les déclencheurs dans le cadre du test unitaire, laissez les déclencheurs désactivés.

Pour vérifier les résultats du plan de génération de données

  1. Dans le menu Données, pointez sur Éditeur Transact-SQL, puis cliquez sur Nouvelle requête.

    La boîte de dialogue Se connecter à la base de données s'affiche.

  2. S'il existe une connexion pour la base de données dans votre environnement de développement isolé, passez à l'étape 8.

  3. Cliquez sur Nouvelle connexion.

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

  4. Dans Nom du serveur, tapez le nom du serveur de base de données sur lequel vous avez déployé la base de données, tel que (local)\SQLExpress, ou cliquez dessus.

  5. Dans Connexion au serveur, cliquez sur Utiliser l'authentification Windows.

  6. Dans Connexion à la base de données, cliquez sur Sélectionner ou entrer un nom de base de données, tapez AdvWorksSandbox, puis cliquez sur OK.

    La connexion est créée et ajoutée à la liste dans la boîte de dialogue Connexion à une base de données.

  7. Dans la boîte de dialogue Connexion à une base de données, cliquez sur la chaîne de connexion qui correspond à la base de données dans votre environnement de développement isolé, puis cliquez sur OK.

    L'éditeur Transact-SQL s'affiche, avec une connexion active à la base de données AdvWorksSandbox.

  8. Dans l'éditeur Transact-SQL, saisissez les éléments suivants :

    SELECT * from HumanResources.Employee;
    
  9. Appuyez sur F5 pour exécuter la requête.

    Le volet de résultats qui s'affiche contient les résultats de votre génération de données.

  10. Dans le menu Fichier, cliquez sur Fermer pour fermer l'éditeur Transact-SQL.

    Ensuite, vous définissez des tests unitaires de base de données qui vérifient le code de la base de données existante.

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 Vue Schéma, ouvrez les dossiers Schémas, dbo, puis Programmability.

  3. Cliquez avec le bouton droit sur le dossier Fonctions, puis cliquez sur Créer des tests unitaires.

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

  4. Développez l'arborescence de Sélection actuelle et activez la case à cocher de la fonction dbo.ufnLeadingZeros. Désactivez les cases à cocher des autres procédures stockées ou fonctions sélectionnées.

    Notes

    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 fonction pour démontrer le processus.

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

  6. Dans Nouveau nom du projet, tapez AWSandboxTestProject et 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.

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

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

  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.

    Notes

    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 devez ensuite spécifier des conditions de test et écrire le test.

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 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 cliquez 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.

    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 Explorateur de tests.

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

  3. Activez la case à cocher de dbo_ufpLeadingZeroTest, cliquez dessus avec le bouton droit, puis sélectionnez Exécuter les tests activés.

  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 test s'exécute 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 votre é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, puis 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 un environnement de développement de base de données isolé jusqu'à ce que des modifications 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 de développement 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 avant de les archiver, puis d'autres membres de l'équipe peuvent synchroniser vos modifications avec leurs propres environnements de développement isolés.

Voir aussi

Tâches

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

Concepts

Génération de données de test pour des bases de données à l'aide de générateurs de données

Vérification du code de base de données à l'aide de tests unitaires

Générer et déployer des bases de données dans un environnement de développement isolé

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

Historique des modifications

Date

Historique

Motif

Prise en charge supplémentaire pour SQL Server 2008 R2 et AdventureWorks2008R2. Certains problèmes de génération de données et de test unitaire signalés dans les commentaires client ont été résolus.

Modifications de fonctionnalités dans le SP1.