Partager via


Dépannage des problèmes liés aux tests unitaires de base de données

Vous pouvez rencontrer les problèmes qui figurent dans cette rubrique lorsque vous effectuez des tests unitaires sur une base de données :

  • Autorisations insuffisantes lorsque vous exécutez des tests unitaires ou générez des données de test

  • Les tests unitaires et les modifications du fichier App.Config sont ignorés lorsque vous exécutez des tests unitaires

  • Déploiement de base de données vers une cible inattendue lorsque vous exécutez des tests unitaires

  • Délais d'attente quand vous exécutez des tests unitaires de base de données

Autorisations insuffisantes lorsque vous exécutez des tests unitaires ou générez des données de test

Vous pouvez configurer un test unitaire pour déployer la base de données et générer des données automatiquement. Si vous ne disposez pas des autorisations suffisantes pour générer des données vers la base de données cible, une erreur qui indique uniquement que vous ne disposez pas d'autorisations pour vous connecter à la base de données peut s'afficher.

Notes

Pour contourner ce problème, exécutez le plan de génération de données manuellement. Si vous ne disposez pas des autorisations suffisantes pour générer des données, cette approche vous offre un message d'erreur plus détaillé qui vous aide à corriger le problème.

Les tests unitaires et les modifications du fichier App.Config sont ignorés lorsque vous exécutez des tests unitaires

Si vous modifiez le fichier App.Config dans le projet de test, vous devez régénérer ce projet pour que les modifications entrent en vigueur. Ces modifications comprennent celles que vous apportez à App.Config à l'aide de la boîte de dialogue Configuration du projet. Si vous ne régénérez pas le projet de test, les modifications ne sont pas appliquées lorsque vous exécutez les tests unitaires.

Déploiement de base de données vers une cible inattendue lorsque vous exécutez des tests unitaires

Si vous déployez une base de données lorsque vous effectuez des tests unitaires, la base de données est créée à l'aide des informations de chaîne de connexion spécifiées dans la configuration du test unitaire. Les informations de connexion spécifiées dans les propriétés de génération du projet de base de données n'étant pas utilisées pour cette tâche, vous pouvez exécuter différents tests unitaires par rapport à différentes instances de la même base de données.

Délais d'attente quand vous exécutez des tests unitaires de base de données

Si vos tests unitaires de base de données échouent à cause d'un délai d'attente trop court, vous pouvez augmenter le délai d'attente en mettant à jour le fichier app.config dans votre projet de base de données. Le délai d'attente sur la chaîne de connexion spécifie la durée d'attente lorsque le test unitaire se connecte au serveur. Le délai d'attente de commande spécifie la durée d'attente lorsque le test unitaire exécute le script Transact-SQL.

Notes

Pour contourner ce problème, spécifiez une plus grande valeur pour l'attribut CommandTimeout sur l'élément Context approprié dans le fichier app.config de votre projet de test. Par exemple, pour spécifier un délai d'attente de commande de 120 secondes pour l'élément PrivilegedContext, mettez à jour le fichier app.config comme suit :

<DatabaseUnitTesting>
    <DatabaseDeployment DatabaseProjectFileName="test.dbproj" Configuration="Debug" />
    <DataGeneration DataGenerationFileName="test.dgen" ClearDatabase="true" />
    <ExecutionContext Provider="System.Data.SqlClient" ConnectionString="another connection string" />
    <PrivilegedContext Provider="System.Data.SqlClient" ConnectionString="test" CommandTimeout="120" />
</DatabaseUnitTesting>

Voir aussi

Tâches

Comment : créer des tests unitaires de base de données pour des fonctions, des déclencheurs et des procédures stockées

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