Freigeben über


Problembehandlung für datengesteuerte Komponententests

Aktualisiert: November 2007

Beim Ausführen von datengesteuerten Komponententests können u. a. Probleme mit der Verbindung, Authentifizierung und Bereitstellung auftreten. In den folgenden Abschnitten finden Sie Informationen zum Lösen dieser Probleme.

Herstellen der Verbindung zur Datenquelle während des Tests nicht möglich

Stellen Sie sicher, dass mit dem Benutzerkonto, unter dem Tests ausgeführt werden, auf die Datenquelle zugegriffen werden kann. Hierfür müssen Sie das zum Ausführen von Tests verwendete Benutzerkonto kennen. Remotetests werden beispielsweise mit dem Benutzerkonto des Agents ausgeführt.

ASP.NET-Probleme

Auf einem IIS-Webserver ausgeführte ASP.NET-Tests werden mit dem ASPNET-Konto ausgeführt. Stellen Sie daher sicher, dass der ASP.NET-Benutzer auf die Datenquelle zugreifen kann.

Auch wenn der 'Excel ODBC Dsn' verwendet wird, müssen Sie einen 'System Dsn' erstellen. Der 'System Dsn' ist für alle Benutzer verfügbar. DSNs werden mit dem ODBC-Datenquellenadministrator erstellt. Klicken Sie hierzu auf Start, öffnen Sie Systemsteuerung und Verwaltung sowie anschließend Datenquellen.

Bereitstellen von Datenquelldateien

Wenn eine Datenquelldatei verwendet wird, z. B. ein Microsoft Excel-Arbeitsblatt oder eine CSV-Datei, stellen Sie sicher, dass diese beim Ausführen des Tests verfügbar ist. Ein Verfahren hierfür besteht darin, die Datenquelldatei als Bereitstellungselement im Dialogfeld Testlaufkonfiguration oder als Bereitstellungselement für einzelne Tests hinzuzufügen. Geben Sie auch einen relativen Pfad für die Datei an. Weitere Informationen zu Testlaufkonfigurationen finden Sie unter Konfigurieren der Testausführung.

Authentifizierungsprobleme

Verwenden Sie nach Möglichkeit immer die Windows-Authentifizierung.

Verbindungszeichenfolgen

Das Dialogfeld Datenverbindung ist zwar gut zum Herstellen von Verbindungen zu Microsoft SQL Server oder Oracle geeignet, jedoch nicht zum Herstellen von Verbindungen zu Dateidatenquellen. Für diese Quellen können Sie eine Verbindungszeichenfolge angeben und anschließend aus einer Dropdownliste im Dialogfeld Eigenschaften einen Datentabellennamen auswählen.

In der folgenden Tabelle finden Sie Beispiele für Anbieternamen und Verbindungszeichenfolgen der meisten Datenanbieter.

Datenquelle

Anbietername

Verbindungszeichenfolge

MS SQL Server (.NET-Anbieter)

System.Data.SqlClient

Data Source=SQL Server-Name;InitialCatalog=Name der Datenbank;Integrated Security=True;Connect Timeout=30;User Instance=True

MS SQL Express Server (.NET-Anbieter)

System.Data.SqlClient

Data Source=.\SQLEXPRESS;AttachDbFilename=C:\ \Test.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True

MS SQL Server (OLEDB- und MDAC-Anbieter)

System.Data.OleDb

Provider=SQLOLEDB;Data Source= SQL Server-Name;Integrated Security=SSPI;Initial Catalog=Name der Datenbank

MS SQL Server (OLEDB, Native Client-Anbieter)

System.Data.OleDb

Provider=SQLNCLI;Data Source= Name des SQL Server-Computers;Integrated Security=SSPI;Initial Catalog=Name der Datenbank

MS-SQL (ODBC)

System.Data.Odbc

Driver={SQL Server};Server=SQL Server-Name;Database=Datenbankname;Trusted_Connection=yes

Driver={SQL Server};Server=SQL Server-Name;Database=Datenbankname;Uid=Benutzername;Pwd=<Kennwort>

Oracle (.NET-Anbieter)

System.Data.OracleClient

Data Source=Oracle Server-Name;Persist Security Info=True;User ID=arno;Password=<Kennwort>;Unicode=True

Oracle (OLEDB, Oracle-Anbieter)

System.Data.OleDb

Provider=OraOLEDB.Oracle;Data Source=Oracle Server-Name;Persist Security Info=True;OSAuthent=1

Provider=OraOLEDB.Oracle;Data Source=Oracle Server-Name;Persist Security Info=True;User ID=arno;Password=<Kennwort>

Oracle (OLEDB, Microsoft-Anbieter)

System.Data.OleDb

Provider=MSDAORA;Data Source= Oracle Server-Name;Persist Security Info=True; User ID=arno;Password=<Kennwort>

Oracle (ODBC)

System.Data.Odbc

Driver={Microsoft ODBC for Oracle};Server=Oracle Server-Name;Uid=arno;Pwd=<Kennwort>

Excel (OLEDB)

System.Data.OleDb

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\ Test.xls;Persist Security Info=False;Extended Properties="Excel 8.0"

Excel (ODBC, MS Excel-Treiber)

System.Data.Odbc

Driver={Microsoft Excel Driver (*.xls)};DriverId=790;Dbq=C:\\Test.xls;DefaultDir=C:\

Tipp   Verwenden Sie für die Tabelle Tabelle1 den Tabellennamen Tabelle1$.

Excel (ODBC, Dsn)

System.Data.Odbc

Dsn=Excel Files;dbq=C:\Test.xls;defaultdir=C:\;driverid=790;maxbuffersize=2048;pagetimeout=5

Tipp    Verwenden Sie zum Ausführen von Tests in ASP.NET den System-DSN anstelle des Benutzer-DSNs.

CSV-/Textdatei (OLEDB)

System.Data.OleDb

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\;Extended Properties="text;HDR=Yes;FMT=Delimited"

Tipp   Verwenden Sie für die Datei test.csv den Tabellennamen test#csv.

Hinweis   HDR=Yes bedeutet, dass in der ersten Zeile Spaltennamen und keine tatsächlichen Daten enthalten sind.

CSV-/Textdatei (ODBC)

System.Data.Obdc

Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=c:\;Extensions=asc,csv,tab,txt

ODBC über Dsn

System.Data.Obdc

Dsn=MeinDSN;Uid=Benutzername;Pwd=<Kennwort>

FILEDSN=C:\MeinDSN.dsn;Uid=Benutzername;Pwd=<Kennwort>

Angeben einer vom kompilierten Code getrennten Datenquelle

In der Datei App.config können Sie eine Datenquelle für den Test angeben. Hierdurch können Sie die Datenquellenattribute ändern, z. B. Server, Tabellenname usw., ohne die Testassembly neu zu kompilieren. Wenn Sie den Test über die Befehlszeile ausführen, stellen Sie sicher, dass sich die Datei App.config im gleichen Verzeichnis wie die Testassembly befindet.

Beispiel:

[TestMethod][DataSource("MyDataSource")]

[DeploymentItem("MyDataSource.csv")]public void MyTest() {}

Inhalt der Datei App.config:

<configSections><section name="microsoft.visualstudio.qualitytools" type="Microsoft.VisualStudio.QualityTools.UnitTesting.Framework.TestConfigurationSection, Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/></configSections><microsoft.visualstudio.qualitytools><dataSources><add name="MyDataSource" connectionString="MyConnectionString" dataTableName="ChildSearchCriteria" dataAccessMethod="Sequential" /></dataSources></microsoft.visualstudio.qualitytools>

Hinweis:

Die Run unit tests in application domain-Eigenschaft legt fest, ob jede Komponententestassembly in einer separaten Anwendungsdomäne ausgeführt wird. Die Standardeinstellung dieser Eigenschaft ist True. Wenn für die Komponententests keine separate Anwendungsdomäne oder app.config-Datei für die ordnungsgemäße Funktionsweise benötigt wird, könnten die Komponententests durch Festlegen dieser Eigenschaft auf False eventuell schneller ausgeführt werden.

Ihre Änderungen werden nach dem Initialisieren der Datenbank in TestInitialize nicht angezeigt

Beim Ausführen von datengesteuerten Testläufen wird vom Komponententestadapter eine Verbindung zur Datentabelle hergestellt und eine Liste der Datenzeilen erstellt. Für jede der Zeilen werden anschließend die Methoden TestInitialize, TestMethod und TestCleanup ausgeführt. Wenn Sie die Datenzeilen in TestInitialize ändern, wird diese Änderung nicht vom Komponententestadapter erkannt. Wenn Sie daher die Datentabelle für einen datengesteuerten Test ändern möchten, nehmen Sie diese Änderung in der ClassInitialize-Methode oder der AssemblyInitialize-Methode vor.

Der Komponententest ist erfolgreich, enthält jedoch keine inneren Ergebnisse

Dieses Ergebnis bedeutet, dass die Datentabelle keine Reihen enthält.

Andere Probleme

Bei Problemen, die hier nicht aufgeführt sind, können Sie in den Supportforen und den Einzelforen für Visual Studio Team Edition for Developers und Visual Studio Team System Test Edition nach Informationen suchen und Fragen stellen.

Siehe auch

Aufgaben

Gewusst wie: Konfigurieren eines datengesteuerten Komponententests

Konzepte

Codieren eines datengesteuerten Komponententests