Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In dieser exemplarischen Vorgehensweise wird die Verwendung einer Datenquelle veranschaulicht, die in einer app.config-Datei für Komponententests definiert ist. Sie erfahren, wie Sie eine app.config Datei erstellen, die eine Datenquelle definiert, die von der DataSourceAttribute Klasse verwendet werden kann. Die in dieser exemplarischen Vorgehensweise dargestellten Aufgaben umfassen Folgendes:
Erstellen einer app.config Datei.
Definieren eines benutzerdefinierten Konfigurationsabschnitts.
Definieren von Verbindungszeichenfolgen.
Definieren der Datenquellen.
Zugreifen auf die Datenquellen mithilfe der DataSourceAttribute-Klasse.
Anmerkung
DataSourceAttribute wird derzeit nur in .NET Framework unterstützt.
Voraussetzungen
Um diese Anleitung abzuschließen, benötigen Sie Folgendes:
Visual Studio Enterprise
Entweder Microsoft Access oder Microsoft Excel, um Daten für mindestens eine der Testmethoden bereitzustellen.
Eine Visual Studio 2012-Projektmappe, die ein Testprojekt enthält.
Hinzufügen einer app.config Datei zum Projekt
Wenn Ihr Testprojekt bereits über eine app.config Datei verfügt, wechseln Sie zu Definieren eines benutzerdefinierten Konfigurationsabschnitts.
Klicken Sie mit der rechten Maustaste auf Ihr Testprojekt im Projektmappen-Explorer, und wählen Sie dann >Neues Element hinzufügenaus.
Das Fenster Neues Element hinzufügen wird geöffnet. Wenn nicht alle Elementvorlagen angezeigt werden, wählen Sie Alle Vorlagen anzeigenaus, und wählen Sie dann die Elementvorlage aus.
Wählen Sie die Vorlage Anwendungskonfigurationsdatei aus, und klicken Sie dann auf Hinzufügen.
Definieren eines benutzerdefinierten Konfigurationsabschnitts
Überprüfen Sie die app.config Datei. Sie enthält mindestens die XML-Deklaration und ein Stammelement.
So fügen Sie der datei app.config den Abschnitt "Benutzerdefinierte Konfiguration" hinzu
Das Stammelement von app.config sollte das Konfigurationselement sein. Erstellen Sie ein configSections-Element innerhalb des configuration-Elements. Die configSections muss das erste Element in der app.config-Datei sein.
Erstellen Sie innerhalb des configSections-Elements ein section-Element.
Fügen Sie im Abschnitt Element ein Attribut namens
name
hinzu, und weisen Sie es einem Wert vonmicrosoft.visualstudio.testtools
zu. Fügen Sie ein weiteres Attribut namenstype
hinzu, und weisen Sie es einem Wert vonMicrosoft.VisualStudio.TestTools.UnitTesting.TestConfigurationSection, Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions
zu.
Der Abschnitt Element sollte etwa wie folgt aussehen:
<section name="microsoft.visualstudio.testtools" type="Microsoft.VisualStudio.TestTools.UnitTesting.TestConfigurationSection, Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions" />
Anmerkung
Der Assemblyname muss mit der version übereinstimmen, die Sie verwenden.
Definieren von Verbindungszeichenfolgen
Die Verbindungszeichenfolgen definieren anbieterspezifische Informationen für den Zugriff auf Datenquellen. Verbindungszeichenfolgen, die in Konfigurationsdateien definiert sind, stellen wiederverwendbare Datenanbieterinformationen in einer Anwendung bereit. In diesem Abschnitt erstellen Sie zwei Verbindungszeichenfolgen, die von Datenquellen verwendet werden, die im Abschnitt "Benutzerdefinierte Konfiguration" definiert sind.
Vorsicht
Die Verbindungszeichenfolge kann vertrauliche Daten enthalten (z. B. ein Kennwort). Die Verbindungszeichenfolge wird im Quellcode und in der kompilierten Assembly als Klartext gespeichert. Beschränken Sie den Zugriff auf den Quellcode und die Assembly, um diese vertraulichen Informationen zu schützen.
So definieren Sie Verbindungszeichenfolgen
Erstellen Sie nach dem configSections--Element ein connectionStrings--Element.
Erstellen Sie innerhalb des connectionStrings-Elements zwei Hinzufügen-Elemente.
Erstellen Sie im ersten Hinzufügen-Element die folgenden Attribute und Werte für eine Verbindung mit einer Microsoft Access-Datenbank:
Attribut | Werte |
---|---|
name |
"MyJetConn" |
connectionString |
"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\testdatasource.accdb; Persist Security Info=False;" |
providerName |
"System.Data.OleDb" |
Erstellen Sie im zweiten Hinzufügen-Element die folgenden Attribute und Werte für eine Verbindung mit einem Microsoft Excel-Arbeitsblatt:
Attribut | Werte |
---|---|
name |
"MyExcelConn" |
connectionString |
"Dsn=Excel Files;dbq=data.xlsx;defaultdir=.\; driverid=790;maxbuffersize=2048;pagetimeout=5" |
providerName |
"System.Data.Odbc" |
Das connectionStrings--Element sollte wie folgt aussehen:
<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>
Definieren von Datenquellen
Der Abschnitt "Datenquellen" enthält vier Attribute, die vom Testmodul zum Abrufen von Daten aus einer Datenquelle verwendet werden.
name
definiert die vom DataSourceAttribute verwendete Identität, um anzugeben, welche Datenquelle verwendet werden soll.connectionString
identifiziert die im vorherigen Abschnitt "Verbindungszeichenfolgen definieren" erstellte Verbindungszeichenfolge.dataTableName
definiert die Tabelle oder das Blatt, die die im Test zu verwendenden Daten enthält.dataAccessMethod
definiert die Technik für den Zugriff auf Datenwerte in der Datenquelle.
In diesem Abschnitt definieren Sie zwei Datenquellen, die in einem Komponententest verwendet werden sollen.
So definieren Sie Datenquellen
Erstellen Sie nach dem connectionStrings--Element ein microsoft.visualstudio.testtools--Element. Dieser Abschnitt wurde im Abschnitt "Benutzerdefinierte Konfiguration definieren" erstellt.
Erstellen Sie innerhalb des microsoft.visualstudio.testtools--Elements ein dataSources--Element.
Erstellen Sie innerhalb des dataSources-Elements zwei Hinzufügen-Elemente.
Erstellen Sie im ersten Hinzufügen-Element die folgenden Attribute und Werte für eine Microsoft Access-Datenquelle:
Attribut | Werte |
---|---|
name |
"MyJetDataSource" |
connectionString |
"MyJetConn" |
dataTableName |
"MyDataTable" |
dataAccessMethod |
"Sequential" |
Erstellen Sie im zweiten Hinzufügen-Element die folgenden Attribute und Werte für eine Microsoft Excel-Datenquelle:
Attribut | Werte |
---|---|
Name |
"MyExcelDataSource" |
connectionString |
"MyExcelConn" |
dataTableName |
"Sheet1$" |
dataAccessMethod |
"Sequential" |
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 app.config Datei sollte etwa wie folgt aussehen:
<?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>
Erstellen eines Komponententests, der datenquellen verwendet, die in app.config definiert sind
Nachdem nun eine app.config Datei definiert wurde, erstellen Sie einen Komponententest, der Daten verwendet, die sich in den Datenquellen befinden, die in der datei app.config definiert sind. In diesem Abschnitt werden wir Folgendes ausführen:
Erstellen Sie die In der app.config Datei gefundenen Datenquellen.
Verwenden Sie die Datenquellen in zwei Testmethoden, die die Werte in jeder Datenquelle vergleichen.
So erstellen Sie eine Microsoft Access-Datenquelle
Erstellen Sie eine Microsoft Access-Datenbank mit dem Namen testdatasource.accdb.
Erstellen Sie eine Tabelle, und nennen Sie sie
MyDataTable
in testdatasource.accdb.Erstellen Sie zwei Felder in
MyDataTable
mit dem NamenArg1
undArg2
mithilfe des datentyps "Number
".Fügen Sie fünf Entitäten zu
MyDataTable
mit den folgenden Werten fürArg1
bzw.Arg2
hinzu: (10,50), (3,2), (6,0), (0,8) und (12312.1000).Speichern und schließen Sie die Datenbank.
Ändern Sie die Verbindungszeichenfolge so, dass sie auf den Speicherort der Datenbank verweist. Ändern Sie den Wert von
Data Source
, um den Speicherort der Datenbank widerzuspiegeln.
So erstellen Sie eine Microsoft Excel-Datenquelle
Erstellen Sie eine Microsoft Excel-Kalkulationstabelle mit dem Namen data.xlsx.
Erstellen Sie ein Blatt mit dem Namen
Sheet1
, wenn es nicht bereits in data.xlsxvorhanden ist.Erstellen Sie in
Sheet1
zwei Spaltenüberschriften und benennen Sie sieVal1
undVal2
.Fügen Sie fünf Entitäten zu
Sheet1
mit den folgenden Werten fürVal1
bzw.Val2
hinzu: (1,1), (2,2), (3,3), (4,4) und (5,0).Speichern und schließen Sie die Kalkulationstabelle.
Ändern Sie die Verbindungszeichenfolge so, dass sie auf die Position der Kalkulationstabelle zeigt. Ändern Sie den Wert von
dbq
, um die Position der Kalkulationstabelle widerzuspiegeln.
So erstellen Sie einen Komponententest mithilfe der app.config Datenquellen
Fügen Sie dem Testprojekt einen Komponententest hinzu.
Ersetzen Sie den automatisch generierten Inhalt des Komponententests durch den 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.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"]); } } }
Untersuchen Sie die DataSource-Attribute. Beachten Sie die Einstellungsnamen aus der datei app.config.
Erstellen Sie Ihre Lösung, und führen Sie MyTestMethod- und MyTestMethod2-Tests aus.
Wichtig
Stellen Sie Elemente wie Datenquellen bereit, damit sie für den Test im Bereitstellungsverzeichnis zugänglich sind.