Vue d'ensemble des chaînes de connexion et des autorisations
Pour exécuter des tests unitaires de base de données, vous devez vous connecter à un serveur de base de données en utilisant une ou deux chaînes de connexion spécifiques. Chaque chaîne de connexion représente un compte qui a les autorisations spécifiques dont vous devez disposer pour exécuter la tâche ou l'ensemble de tâches d'un script particulier dans le cadre du test. Vous pouvez spécifier ces chaînes dans la boîte de dialogue Configuration du projet ou en modifiant manuellement le fichier app.config pour votre projet de test.
Chaînes de connexion
Dans la boîte de dialogue Configuration du projet, vous pouvez spécifier des chaînes de connexion pour chacun des comptes suivants.
Notes
Le contexte d'exécution et le contexte privilégié diffèrent uniquement si vous utilisez l'authentification SQL Server. Si vous utilisez l'authentification Windows, les mêmes informations d'identification seront utilisées pour les deux chaînes de connexion.
Contexte d'exécution (Requis) : compte d'utilisateur destiné à l'exécution du script de test. Cette chaîne de connexion doit avoir les mêmes informations d'identification que celles que vos utilisateurs doivent avoir. Ce point est important car il garantit que les autorisations appropriées ont été appliquées à votre base de données. Pour plus d'informations, consultez Comment : configurer l'exécution de tests unitaires de base de données.
Dans le fichier app.config de votre projet de test, il s'agit de l'élément ExecutionContext.
Contexte privilégié (Facultatif) : compte disposant d'autorisations supérieures pour exécuter le script d'action de prétest, le script d'action de post-test, le script TestInitialize et le script TestCleanup. Ces scripts définissent l'état de la base de données. Pour l'action de post-test, ils peuvent en outre être utilisés pour valider des objets dans la base de données. Cette chaîne de connexion est également utilisée pour déployer des modifications de base de données et générer des données.
Dans le fichier app.config de votre projet de test, il s'agit de l'élément PrivilegedContext . Si vos tests unitaires de base de données exécutent uniquement le script de test, il n'est pas nécessaire de spécifier un contexte privilégié.
Les chaînes que vous spécifiez dans la boîte de dialogue Configuration du projet sont stockées dans le fichier app.config de votre projet de test. Vous pouvez également modifier directement ce fichier et régénérer le projet, après quoi les nouvelles valeurs apparaissent dans la boîte de dialogue.
Comparaison entre l'authentification Windows et l'authentification SQL
Lorsque vous spécifiez des chaînes de connexion, vous devez choisir d'utiliser l'authentification Windows ou l'authentification SQL. Une raison qui justifie de choisir l'authentification Windows est qu'elle prend mieux en charge l'utilisation de tests par une équipe que l'authentification SQL. Si vous choisissez l'authentification SQL, les chaînes de connexion sont chiffrées, à l'aide de l'API de protection des données (DPAPI), en fonction des informations d'identification de votre utilisateur. Cela implique que les tests de ce projet de test s'exécuteront uniquement pour vous, et non pas pour les membres de l'équipe qui se procurent les tests via le système de contrôle du code source, après que vous les avez archivés. Pour effectuer des tests dans ce projet de test, les autres membres de l'équipe doivent reconfigurer le projet de test avec leurs propres informations d'identification. Pour ce faire, ils devront modifier leur copie du fichier app.config ou utiliser la boîte de dialogue Configuration du projet.
Autorisations
Le script de test s'exécute au niveau d'autorisation du contexte d'exécution, qui est le même niveau d'autorisation que celui qui serait appliqué pour les commandes utilisateur qui sont exécutées sur la base de données lorsqu'elle est en utilisation classique. Les scripts d'action de prétest, de post-test, TestInitialize et TestCleanup s'exécutent au niveau d'autorisation du contexte privilégié.
Du fait de la connexion d'autorisation supérieure utilisée pour le script d'action de post-test, vous pouvez effectuer une validation dedans. Dans ce script, vous pouvez également exécuter des commandes de script qui testent les autorisations. Pour plus d'informations sur les autorisations, consultez la section sur les tests unitaires de base de données de Autorisations requises pour les fonctionnalités de base de données de Visual Studio.