Exemplarische Vorgehensweise: Verwenden einer Konfigurationsdatei zum Definieren einer Datenquelle
Diese exemplarische Vorgehensweise veranschaulicht, wie eine in der Datei app.config definierte Datenquelle für Komponententests verwendet wird. Sie erfahren, wie die Datei app.config zum Definieren einer Datenquelle erstellt wird, die von der DataSourceAttribute-Klasse verwendet werden kann. Die folgenden Aufgaben werden in dieser exemplarischen Vorgehensweise vorgestellt:
Erstellen der Datei app.config
Definieren eines benutzerdefinierten Konfigurationabschnitts
Definieren von Verbindungszeichenfolgen
Definieren der Datenquellen
Zugreifen auf die Datenquellen über die DataSourceAttribute-Klasse.
Vorbereitungsmaßnahmen
Um die exemplarische Vorgehensweise nachzuvollziehen, benötigen Sie:
Microsoft Visual Studio 2005 Team Edition for Software Testers
Microsoft Access oder Microsoft Excel, um Daten für mindestens eine der Testmethoden bereitzustellen
Eine Visual Studio 2005-Projektmappe, die ein Testprojekt enthält.
Erstellen der Datei App.config
So fügen Sie dem Projekt die Datei app.config hinzu
Wenn für das Testprojekt bereits eine Datei app.config vorhanden ist, fahren Sie mit Definieren eines benutzerdefinierten Konfigurationabschnitts fort.
Klicken Sie mit der rechten Maustaste im Projektmappen-Explorer auf das Testprojekt, wählen Sie Hinzuzufügen, und klicken Sie dann auf Neues Element.
Das Fenster Neues Element hinzufügen wird geöffnet.
Wählen Sie die Vorlage Anwendungskonfigurationsdatei aus, und klicken Sie dann auf Hinzufügen.
Definieren eines benutzerdefinierten Konfigurationabschnitts
Sehen Sie sich die Datei app.config an. Sie enthält mindestens die XML-Deklaration und ein Stammelement.
So fügen Sie der Datei app.config den benutzerdefinierten Konfigurationsabschnitt hinzu
Das Stammelement von app.config sollte das
configuration
-Element sein. Erstellen Sie einconfigSections
-Element innerhalb desconfiguration
-Elements.configSections
sollte das erste Element in der Datei app.config sein.Erstellen Sie innerhalb des
configSections
-Elements einsection
-Element.Fügen Sie dem
section
-Element ein Attribut mit dem Namenname
hinzu, und weisen Sie ihm den Wertmicrosoft.visualstudio.testtools
zu. Fügen Sie ein weiteres Attribut mit dem Namentype
hinzu, und weisen Sie diesem den WertMicrosoft.VisualStudio.TestTools.UnitTesting.TestConfigurationSection, Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
zu.
Das section
-Element sollte wie folgt aussehen:
<section name="microsoft.visualstudio.testtools" type="Microsoft.VisualStudio.TestTools.UnitTesting.TestConfigurationSection, Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
Definieren von Verbindungszeichenfolgen
Die Verbindungszeichenfolgen definieren anbieterspezifische Informationen für den Zugriff auf Datenquellen. In Konfigurationsdateien definierte Verbindungszeichenfolgen enthalten wiederverwendbare Datenanbieterinformationen für eine Anwendung. In diesem Abschnitt erstellen Sie zwei Verbindungszeichenfolgen, die von den im benutzerdefinierten Konfigurationsabschnitt definierten Datenquellen verwendet werden.
So definieren Sie Verbindungszeichenfolgen
Erstellen Sie hinter dem
configSections
-Element einconnectionStrings
-Element.Erstellen Sie innerhalb des
connectionStrings
-Elements zweiadd
-Elemente.Erstellen Sie im ersten
add
-Element die folgenden Attribute und Werte für eine Verbindung mit einer Microsoft Access-Datenbank:
Attribut | Werte |
---|---|
|
|
|
|
|
|
Erstellen Sie im zweiten add
-Element die folgenden Attribute und Werte für eine Verbindung mit einer Microsoft Excel-Tabelle:
|
|
|
|
|
|
Das connectionStrings
-Element sollte wie folgt aussehen:
<connectionStrings>
<add name="MyJetConn" connectionString="Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\testdatasource.mdb; Persist Security Info=False;" providerName="System.Data.OleDb" />
<add name="MyExcelConn" connectionString="Dsn=Excel Files;dbq=data.xls;defaultdir=.; driverid=790;maxbuffersize=2048;pagetimeout=5" providerName="System.Data.Odbc" />
</connectionStrings>
Definieren von Datenquellen
Der Datenquellenabschnitt enthält vier Attribute, die vom Testmodul zum Abrufen von Daten aus einer Datenquelle verwendet werden.
name
definiert die von DataSourceAttribute verwendete Identität, um die zu verwendende Datenquelle anzugeben.connectionString
bezeichnet die im vorhergehenden Abschnitt in der Definition der Verbindungszeichenfolge erstellte Verbindungszeichenfolge.dataTableName
definiert die Tabelle oder das Blatt mit den im Test zu verwendenden Daten.dataAccessMethod
definiert die Technik für den Zugriff auf Datenwerte in der Datenquelle.
In diesem Abschnitt definieren Sie zwei Datenquellen für die Verwendung in einem Komponententest.
So definieren Sie Datenquellen
Erstellen Sie hinter dem
connectionStrings
-Element einmicrosoft.visualstudio.testtools
-Element. Dieser Abschnitt wurde beim Definieren eines benutzerdefinierten Konfigurationabschnitts erstellt.Erstellen Sie innerhalb des
microsoft.visualstudio.testtools
-Elements eindataSources
-Element.Erstellen Sie innerhalb des
dataSources
-Elements zweiadd
-Elemente.Erstellen Sie im ersten
add
-Element die folgenden Attribute und Werte für eine Microsoft Access-Datenquelle:
Attribut | Werte |
---|---|
|
|
|
|
|
|
|
|
Erstellen Sie im zweiten add
-Element die folgenden Attribute und Werte für eine Microsoft Excel-Datenquelle:
|
|
|
|
|
|
|
|
Das microsoft.visualstudio.testtools
-Element sollte wie folgt aussehen:
<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>
Die endgültige Datei app.config sollte in etwa folgendermaßen aussehen:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="microsoft.visualstudio.testtools" type="Microsoft.VisualStudio.TestTools.UnitTesting.TestConfigurationSection, Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</configSections>
<connectionStrings>
<add name="MyJetConn" connectionString="Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\testdatasource.mdb; Persist Security Info=False;" providerName="System.Data.OleDb" />
<add name="MyExcelConn" connectionString="Dsn=Excel Files;dbq=data.xls;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>
Erstellen eines Komponententests mit in der Datei app.config definierten Datenquellen
Nachdem die Datei app.config definiert ist, erstellen Sie einen Komponententest, für den Daten aus den in der Datei app.config definierten Datenquellen verwendet werden. In diesem Abschnitt wird Folgendes beschrieben:
Erstellen der in der Datei app.config angegebenen Datenquellen
Verwenden der Datenquellen in zwei Testmethoden, bei denen die Werte der beiden Datenquellen verglichen werden.
So erstellen Sie eine Microsoft Access-Datenquelle
Erstellen Sie eine Microsoft Access-Datenbank mit dem Namen
testdatasource.mdb
.Erstellen Sie eine Tabelle mit dem Namen
MyDataTable
intestdatasource.mdb
.Erstellen Sie in
MyDataTable
zwei Felder mit den NamenArg1
undArg2
mit dem Datentyp Number.Fügen Sie
MyDataTable
fünf Entitäten mit folgenden Werten fürArg1
undArg2
hinzu: (10,50), (3,2), (6,0), (0,8) bzw. (12312,1000).Speichern und schließen Sie die Datenbank.
Ändern Sie die Verbindungszeichenfolge, um auf den Speicherort der Datenbank zu verweisen. Ändern Sie den Wert von
Data Source
, um den Speicherort der Datenbank anzugeben.
So erstellen Sie eine Microsoft Excel-Datenquelle
Erstellen Sie eine Microsoft Excel-Tabelle mit dem Namen
data.xls
.Erstellen Sie ein Arbeitsblatt mit dem Namen
Sheet1
, falls dieses indata.xls
noch nicht vorhanden ist.Erstellen Sie die zwei Spaltenüberschriften
Val1
undVal2
inSheet1
.Fügen Sie
Sheet1
fünf Entitäten mit folgenden Werten fürVal1
undVal2
hinzu: (1,1), (2,2), (3,3), (4,4) bzw. (5,0).Speichern und schließen Sie die Kalkulationstabelle.
Ändern Sie die Verbindungszeichenfolge, um auf den Speicherort der Kalkulationstabelle zu verweisen. Ändern Sie den Wert von
dbq
, um den Speicherort der Tabelle anzugeben.
So erstellen Sie einen Komponententest unter Verwendung der Datenquellen aus app.config
Fügen Sie dem Testprojekt einen Komponententest hinzu.
Weitere Informationen finden Sie unter Gewusst wie: Erstellen eines Komponententests.
Ersetzen Sie den automatisch generierten Inhalt des Komponententests durch folgenden Code:
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.mdb")] [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.xls")] [DataSource("MyExcelDataSource")] public void MyTestMethod2() { Assert.AreEqual(context.DataRow["Val1"], context.DataRow["Val2"]); } } }
Sehen Sie sich die DataSource-Attribute an. Beachten Sie die Einstellungsnamen aus der Datei app.config.
Erstellen Sie die Projektmappe, und führen Sie die Tests MyTestMethod und MyTestMethod2 aus.
Wichtig
Stellen Sie Elemente wie Datenquellen bereit, damit sie für den Test im Bereitstellungsverzeichnis zugänglich sind. Weitere Informationen finden Sie unter Testen der Bereitstellung.
Siehe auch
Aufgaben
Gewusst wie: Erstellen eines Testprojekts
Gewusst wie: Generieren eines Komponententests
Gewusst wie: Erstellen eines Komponententests
Gewusst wie: Konfigurieren eines datengesteuerten Komponententests
Konzepte
Codieren eines datengesteuerten Komponententests