Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
Cette procédure pas à pas montre comment utiliser une source de données définie dans un fichier app.config pour les tests unitaires. Vous allez apprendre à créer un fichier app.config qui définit une source de données qui peut être utilisée par la DataSourceAttribute classe. Les tâches présentées dans cette procédure pas à pas sont les suivantes :
Création d’un fichier app.config .
Définition d’une section de configuration personnalisée.
Définition de chaînes de connexion.
Définition des sources de données.
Accès aux sources de données à l’aide de la DataSourceAttribute classe.
Note
DataSourceAttribute est actuellement pris en charge uniquement sur .NET Framework.
Prerequisites
Pour effectuer cette procédure pas à pas, vous avez besoin des éléments suivants :
Visual Studio Enterprise
Microsoft Access ou Microsoft Excel pour fournir des données pour au moins l’une des méthodes de test.
Solution Visual Studio qui contient un projet de test.
Ajouter un fichier app.config au projet
Si votre projet de test a déjà un fichier app.config , accédez à définir une section de configuration personnalisée.
Cliquez avec le bouton droit sur votre projet de test dans l’Explorateur de solutions, puis sélectionnez Ajouter>un nouvel élément.
La fenêtre Ajouter un nouvel élément s’ouvre. Si vous ne voyez pas tous les modèles d’élément, choisissez Afficher tous les modèles, puis choisissez le modèle d’élément.
Sélectionnez le modèle fichier de configuration d’application , puis cliquez sur Ajouter.
Définir une section de configuration personnalisée
Examinez le fichier app.config . Il contient au moins la déclaration XML et un élément racine.
Pour ajouter la section de configuration personnalisée au fichier app.config
L’élément racine de app.config doit être l’élément de configuration . Créez un élément configSections dans l’élément de configuration . Les configSections doivent être le premier élément du fichier app.config .
Dans l’élément configSections , créez un élément de section .
Dans l’élément de section, ajoutez un attribut appelé
nameet affectez-lui une valeur .microsoft.visualstudio.testtoolsAjoutez un autre attribut appelétypeet affectez-le une valeur deMicrosoft.VisualStudio.TestTools.UnitTesting.TestConfigurationSection, Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.
L’élément de section doit ressembler à ceci :
<section name="microsoft.visualstudio.testtools" type="Microsoft.VisualStudio.TestTools.UnitTesting.TestConfigurationSection, Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions" />
Note
Le nom de l’assembly doit correspondre à la version que vous utilisez.
Définir des chaînes de connexion
Les chaînes de connexion définissent des informations spécifiques au fournisseur pour accéder aux sources de données. Les chaînes de connexion définies dans les fichiers de configuration fournissent des informations de fournisseur de données réutilisables sur une application. Dans cette section, vous créez deux chaînes de connexion qui seront utilisées par les sources de données définies dans la section Configuration personnalisée.
Caution
La chaîne de connexion peut contenir des données sensibles (par exemple, un mot de passe). La chaîne de connexion est stockée en texte brut dans le code source et dans l’assembly compilé. Limitez l’accès au code source et à l’assembly pour protéger ces informations sensibles.
Pour définir des chaînes de connexion
Après l’élément configSections , créez un élément connectionStrings .
Dans l’élément connectionStrings , créez deux éléments d’ajout .
Dans le premier élément d’ajout , créez les attributs et valeurs suivants pour une connexion à une base de données Microsoft Access :
| Caractéristique | Valeurs |
|---|---|
name |
"MyJetConn" |
connectionString |
"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\testdatasource.accdb; Persist Security Info=False;" |
providerName |
"System.Data.OleDb" |
Dans le deuxième élément d’ajout , créez les attributs et valeurs suivants pour une connexion à une feuille de calcul Microsoft Excel :
| Caractéristique | Valeurs |
|---|---|
name |
"MyExcelConn" |
connectionString |
"Dsn=Excel Files;dbq=data.xlsx;defaultdir=.\; driverid=790;maxbuffersize=2048;pagetimeout=5" |
providerName |
"System.Data.Odbc" |
L’élément connectionStrings doit ressembler à ceci :
<connectionStrings>
<add name="MyJetConn" connectionString="Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\testdatasource.accdb; Persist Security Info=False;" providerName="System.Data.OleDb" />
<add name="MyExcelConn" connectionString="Dsn=Excel Files;dbq=data.xlsx;defaultdir=.\; driverid=790;maxbuffersize=2048;pagetimeout=5" providerName="System.Data.Odbc" />
</connectionStrings>
Définir des sources de données
La section sources de données contient quatre attributs utilisés par le moteur de test pour récupérer des données d’une source de données.
namedéfinit l’identité utilisée par DataSourceAttribute pour indiquer quelle source de données utiliser.connectionStringidentifie la chaîne de connexion créée dans la section Définir les chaînes de connexion précédentes.dataTableNamedéfinit la table ou la feuille qui contient les données à utiliser dans le test.dataAccessMethoddéfinit la technique d’accès aux valeurs de données dans la source de données.
Dans cette section, vous allez définir deux sources de données à utiliser dans un test unitaire.
Pour définir des sources de données
Après l’élément connectionStrings , créez un élément microsoft.visualstudio.testtools . Cette section a été créée dans Définir une section Configuration personnalisée.
Dans l’élément microsoft.visualstudio.testtools , créez un élément dataSources .
Dans l’élément DataSources , créez deux éléments d’ajout .
Dans le premier élément d’ajout , créez les attributs et valeurs suivants pour une source de données Microsoft Access :
| Caractéristique | Valeurs |
|---|---|
name |
"MyJetDataSource" |
connectionString |
"MyJetConn" |
dataTableName |
"MyDataTable" |
dataAccessMethod |
"Sequential" |
Dans le deuxième élément d’ajout , créez les attributs et valeurs suivants pour une source de données Microsoft Excel :
| Caractéristique | Valeurs |
|---|---|
Name |
"MyExcelDataSource" |
connectionString |
"MyExcelConn" |
dataTableName |
"Sheet1$" |
dataAccessMethod |
"Sequential" |
L’élément microsoft.visualstudio.testtools doit ressembler à ceci :
<microsoft.visualstudio.testtools>
<dataSources>
<add name="MyJetDataSource" connectionString="MyJetConn" dataTableName="MyDataTable" dataAccessMethod="Sequential"/>
<add name="MyExcelDataSource" connectionString="MyExcelConn" dataTableName="Sheet1$" dataAccessMethod="Sequential"/>
</dataSources>
</microsoft.visualstudio.testtools>
Le fichier app.config final doit ressembler à ceci :
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="microsoft.visualstudio.testtools" type="Microsoft.VisualStudio.TestTools.UnitTesting.TestConfigurationSection, Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions" />
</configSections>
<connectionStrings>
<add name="MyJetConn" connectionString="Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\testdatasource.accdb; Persist Security Info=False;" providerName="System.Data.OleDb" />
<add name="MyExcelConn" connectionString="Dsn=Excel Files;dbq=data.xlsx;defaultdir=.\; driverid=790;maxbuffersize=2048;pagetimeout=5" providerName="System.Data.Odbc" />
</connectionStrings>
<microsoft.visualstudio.testtools>
<dataSources>
<add name="MyJetDataSource" connectionString="MyJetConn" dataTableName="MyDataTable" dataAccessMethod="Sequential"/>
<add name="MyExcelDataSource" connectionString="MyExcelConn" dataTableName="Sheet1$" dataAccessMethod="Sequential"/>
</dataSources>
</microsoft.visualstudio.testtools>
</configuration>
Créer un test unitaire qui utilise des sources de données définies dans app.config
Maintenant qu’un fichier app.config a été défini, vous allez créer un test unitaire qui utilise des données situées dans les sources de données définies dans le fichier app.config . Dans cette section, nous allons :
Créez les sources de données trouvées dans le fichier app.config .
Utilisez les sources de données dans deux méthodes de test qui comparent les valeurs de chaque source de données.
Pour créer une source de données Microsoft Access
Créez une base de données Microsoft Access nommée testdatasource.accdb.
Créez une table et nommez-la
MyDataTabledans testdatasource.accdb.Créez deux champs dans
MyDataTablenommésArg1etArg2en utilisant le type de donnéesNumber.Ajoutez cinq entités à
MyDataTableavec les valeurs suivantes pourArg1etArg2, respectivement : (10,50), (3,2), (6,0), (0,8) et (12312,1000).Enregistrez et fermez la base de données.
Modifiez la chaîne de connexion pour qu’elle pointe vers l’emplacement de la base de données. Modifiez la valeur de
Data Sourcepour refléter l’emplacement de la base de données.
Pour créer une source de données Microsoft Excel
Créez une feuille de calcul Microsoft Excel nommée data.xlsx.
Créez une feuille nommée
Sheet1si elle n’existe pas déjà dans data.xlsx.Créez deux en-têtes de colonne et nommez-les
Val1etVal2dansSheet1.Ajoutez cinq entités à
Sheet1avec les valeurs suivantes pourVal1etVal2, respectivement : (1,1), (2,2), (3,3), (4,4) et (5,0).Enregistrez et fermez la feuille de calcul.
Modifiez la chaîne de connexion pour qu’elle pointe vers l’emplacement de la feuille de calcul. Modifiez la valeur de
dbqpour refléter l'emplacement de la feuille de calcul.
Pour créer un test unitaire à l’aide des sources de données app.config
Ajoutez un test unitaire au projet de test.
Remplacez le contenu généré automatiquement du test unitaire par le code suivant :
using System; using Microsoft.VisualStudio.TestTools.UnitTesting; namespace TestProject1 { [TestClass] public class UnitTest1 { private TestContext context; public TestContext TestContext { get { return context; } set { context = value; } } [TestMethod()] [DeploymentItem("MyTestProject\\testdatasource.accdb")] [DataSource("MyJetDataSource")] public void MyTestMethod() { int a = Int32.Parse(context.DataRow["Arg1"].ToString()); int b = Int32.Parse(context.DataRow["Arg2"].ToString()); Assert.AreNotEqual(a, b, "A value was equal."); } [TestMethod()] [DeploymentItem("MyTestProject\\data.xlsx")] [DataSource("MyExcelDataSource")] public void MyTestMethod2() { Assert.AreEqual(context.DataRow["Val1"], context.DataRow["Val2"]); } } }Examinez les attributs DataSource. Notez les noms des paramètres du fichier app.config .
Générez votre solution et exécutez des tests MyTestMethod et MyTestMethod2.
Important
Déployez des éléments comme des sources de données afin qu’ils soient accessibles au test dans le répertoire de déploiement.