Comment : configurer l'exécution de tests unitaires de base de données

Cette rubrique s'applique à :

Visual Studio Ultimate

Visual Studio Premium

Visual Studio Professional 

Visual Studio Express

La rubrique s'applique La rubrique s'applique La rubrique ne s'applique pas La rubrique ne s'applique pas

En configurant votre projet de test, vous pouvez spécifier plusieurs paramètres qui contrôlent certains aspects de l'exécution de vos tests unitaires de base de données. Ces paramètres de configuration sont stockés dans le fichier app.config de votre projet de test. Si vous modifiez directement ce fichier, les nouvelles valeurs apparaissent dans la boîte de dialogue Configuration du projet.

Votre solution peut contenir plusieurs projets de test. Chaque projet de test contient un fichier app.config (c'est-à-dire un ensemble de paramètres de configuration). Par conséquent, votre solution peut contenir des ensembles des tests unitaires de base de données (un ensemble pour chaque projet de test) qui sont configurés pour s'exécuter différemment.

Ces paramètres contrôlent la façon dont votre test se connecte à la base de données que vous testerez, la façon dont vous déployez un schéma à partir d'un projet de base de données sur cette base de données, et si vous remplissez la base de données en utilisant un plan de génération de données :

  • Connexions de base de données. Vous utilisez ce paramètre pour spécifier les chaînes de connexion qui sont utilisées pour se connecter à la base de données que vous testez. Pour plus d'informations, consultez Spécification de chaînes de connexion

  • Déploiement de schéma. Un projet de base de données est une représentation hors connexion de votre base de données. Le projet de base de données représente la structure de vos objets de base de données, mais il ne contient pas aucune donnée. Après avoir apporté des modifications de schéma dans un projet de base de données, vous pouvez les tester dans une base de données réelle. Dans l'étape de déploiement du schéma, les objets de base de données que vous voulez tester sont copiés de votre projet de base de données dans la base de données sur laquelle vous exécutez des tests. Pour plus d'informations sur le déploiement de schéma, consultez Déploiement d'un schéma de base de données.

  • État de la base de données. En générant des données de test pour votre base de données, vous pouvez définir son état avant le démarrage de votre série de tests. Vous pouvez également définir l'état de la base de données en la restaurant à partir d'une copie de sauvegarde dans le script TestInitialize. Pour plus d'informations sur cette approche, consultez Scripts dans les tests unitaires de base de données.

    Pour spécifier les données à générer, vous créez un plan de génération de données dans lequel vous identifiez les tables et les colonnes qui doivent contenir les données de test. Vous spécifiez également la forme que doivent prendre les données. Par exemple, vous pouvez générer le nombre approprié de chiffres pour un numéro de téléphone ou importer des noms de clients fictifs à partir d'une base de données contenant des données de test modifiées. Pour plus d'informations, consultez Utilisation d'un plan de génération de données.

    Notes

    Les tests ne s'exécutent pas dans le dossier de solution, mais dans un dossier distinct sur le disque dur local. Bien que vous puissiez configurer certains aspects du déploiement de tests, vous n'avez généralement pas besoin de les configurer pour les tests unitaires de base de données. Pour plus d'informations sur le déploiement de tests, consultez Exécution des tests.

Spécification de chaînes de connexion

Pour spécifier des chaînes de connexion de base de données

  1. Dans le menu Test, cliquez sur Configuration de test de base de données.

    La boîte de dialogue Configuration du projet 'ProjetTest' s'affiche.

  2. Sous Connexions de base de données, vous pouvez effectuer les tâches suivantes :

    • Cliquez sur la connexion de base de données sur laquelle vous voulez exécuter des tests unitaires.

    • Activez la case à cocher Utiliser une connexion de données secondaire pour valider les tests unitaires, et cliquez sur une connexion de base de données dans la liste si vous voulez que l'exécution des tests soit validée par rapport à une autre connexion de base de données.

    • Cliquez sur Nouvelle connexion pour ajouter une connexion à l'une ou l'autre liste. Vous pouvez également cliquer sur Modifier la connexion pour modifier les paramètres définis pour une connexion existante.

    Cette étape crée la chaîne de connexion ExecutionContext, laquelle est utilisée pour exécuter le script de test dans votre test unitaire de base de données. Si vous spécifiez également une connexion secondaire, la chaîne de connexion PrivilegedContext est également créée. Cette connexion est utilisée pour tester les interactions avec la base de données à l'extérieur du script de test dans votre test unitaire de base de données. Pour plus d'informations, consultez Vue d'ensemble des chaînes de connexion et des autorisations.

  3. Cliquez sur OK pour fermer la boîte de dialogue Configuration du projet 'ProjetTest'.

  4. Régénérez le projet de test pour appliquer les modifications de configuration apportées.

Déploiement d'un schéma de base de données

Pour déployer le schéma d'un projet de base de données sur une base de données

  1. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le projet de base de données, puis cliquez sur Générer.

    Lorsque vous générez votre projet de base de données, vous générez également un script Transact-SQL. Ce script, lorsqu'il est exécuté sur une base de données, recrée la structure de votre projet de base de données dans cette base de données.

  2. Sélectionnez le projet de test que vous voulez configurer.

  3. Dans le menu Test, cliquez sur Configuration de test de base de données.

    La boîte de dialogue Configuration du projet 'ProjetTest' s'affiche.

  4. Sous Déploiement, vous pouvez effectuer les tâches suivantes :

    • Activez la case à cocher Déployer automatiquement le projet de base de données avant d'exécuter les tests afin de vous assurer que toutes modifications de schéma que vous avez apportées à votre projet de base de données sont validées avant d'exécuter les tests.

    • Sous Projet de base de données, cliquez sur le projet de base de données que vous voulez déployer, ou cliquez sur les points de suspension pour rechercher un autre projet. Les fichiers projet de base de données portent l'extension .dbproj.

    • Sous Configuration de déploiement, cliquez sur la configuration de projet par rapport à laquelle vous voulez effectuer le déploiement. Les choix disponibles sont Debug, Par défaut ou Release. Toutefois, si vous créez une configuration pour le test unitaire, cette configuration apparaît également comme option.

  5. Cliquez sur OK pour fermer la boîte de dialogue Configuration du projet 'ProjetTest'.

    Au début de la série de tests, le script Transact-SQL qui a été généré à l'étape 1 est exécuté. Cette action déploie le schéma sur la base de données cible.

  6. Régénérez le projet de test unitaire de base de données pour appliquer les modifications de configuration apportées.

    Notes

    Si vous utilisez la génération de données et que vous déployez le schéma dans votre projet de test unitaire, désactivez la case à cocher Bloquer le déploiement incrémentiel si une perte de données peut se produire. Cette case à cocher apparaît sous l'onglet Générer dans les propriétés du projet de base de données. Si vous ne la désactivez pas avant d'essayer de déployer le schéma, le déploiement échouera. Pour plus d'informations, consultez Comment : contrôler la perte de données pendant le déploiement sur des bases de données existantes.

Utilisation d'un plan de génération de données

Pour utiliser un plan de génération de données avec un test unitaire de base de données

  1. Créez un plan de génération de données. Pour plus d'informations, consultez Comment : créer des plans de génération de données.

  2. Spécifiez les tables que vous voulez remplir avec le plan de génération de données. Pour plus d'informations, consultez Comment : spécifier des tables pour la génération de données.

  3. Spécifiez les colonnes de ces tables qui doivent être remplies. Pour plus d'informations, consultez Comment : spécifier des colonnes pour la génération de données.

  4. Enregistrez le plan de génération de données et notez son nom.

  5. Dans l'Explorateur de solutions, cliquez sur le projet de test que vous voulez configurer.

  6. Dans le menu Test, cliquez sur Configuration de test de base de données.

    La boîte de dialogue Configuration du projet 'ProjetTest' s'affiche.

  7. Sous État de la base de données, procédez comme suit :

    • Activez la case à cocher Générer les données de test avant l'exécution des tests unitaires pour appliquer un plan de génération de données à votre projet de base de données avant d'effectuer des tests. Les plans de génération de données ont une extension .dgen.

    • Cliquez dans la liste sur le plan de génération de données que vous voulez appliquer, ou cliquez sur les points de suspension pour rechercher un plan.

    • Activez la case à cocher Effacer la base de données avant de générer les données de test pour remplacer la base de données de test existante dans le projet de base de données spécifié.

  8. Cliquez sur OK pour fermer la boîte de dialogue Configuration du projet 'ProjetTest'.

    Le code qui appelle le plan de génération de données est ajouté à la méthode AssemblyInitialize de votre projet de test, que vous pouvez trouver dans le fichier nommé DatabaseSetup.cs ou DatabaseSetup.vb. À présent, si vous exécutez des tests unitaires de base de données, le plan de génération de données ne remplit la base de données qu'à une seule reprise, à savoir au début de votre série de tests.

    Notes

    Vous ne pouvez pas annuler les effets de la génération de données de test.

  9. (Facultatif) Pour utiliser ce plan de génération de données plusieurs fois dans votre série de tests, copiez le code qui l'appelle à partir de la méthode AssemblyInitialize, puis collez-le dans d'autres méthodes de votre test unitaire de base de données.

  10. Régénérez le projet de test pour appliquer les modifications de configuration apportées.

Voir aussi

Tâches

Comment : créer des plans de génération de données

Concepts

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