Unit-Tests Fehler, Das unit-test-adapter beim verbinden mit der Datenquelle oder zum Lesen der Daten
Bin ich mit VSTS 2K8 und ich habe ein Unit-Test-Projekt. In ihm habe ich eine test-Klasse mit einer Methode, die eine einfache Behauptung. Ich verwende eine Excel 2007-Tabelle, wie meine Datenquelle.
Meine test-Methode sieht wie folgt aus:
[DataSource("System.Data.Odbc",
"Dsn=Excel Files;dbq=|DataDirectory|\\MyTestData.xlsx;defaultdir=C:\\TestData;driverid=1046;maxbuffersize=2048;pagetimeout=5",
"Sheet1",
DataAccessMethod.Sequential)]
[DeploymentItem("MyTestData.xlsx")]
[TestMethod()]
public void State_Value_Is_Set()
{
string expected = "MD";
string actual = TestContext.DataRow["State"] as string;
Assert.AreEqual(expected, actual);
}
Wie in der Methode der Dekoration Attribute, meine Excel-Tabelle ist auf meinem lokalen C:/Laufwerk. In es, das Blatt, wo alle meine Daten liegen mit dem Namen "Tabelle1".
Habe ich kopiert die Excel-Tabelle in mein Projekt und ich habe eingestellt, dessen Build Action = "Inhalt" und ich habe seine Copy to Output Directory = "Kopieren, wenn Neuer".
Beim ausführen dieser einfachen unit-Tests, erhalte ich die folgende Fehlermeldung:
Den unit test adapter beim verbinden mit der Datenquelle oder zum Lesen der Daten. Weitere Informationen zur Problembehandlung bei dieser Fehlermeldung finden Sie unter "Fehlerbehebung Data-Driven Unit Tests" (http://go.microsoft.com/fwlink/?LinkId=62412) in der MSDN-Bibliothek.
Fehlerdetails: FEHLER [42S02] [Microsoft][ODBC Excel-Treiber] Das Microsoft Office Access-Datenbankmodul konnte das Objekt nicht finden 'Tabelle1'. Stellen Sie sicher, dass das Objekt existiert und dass Sie buchstabieren seinen Namen und den Pfadnamen richtig.
Ich habe festgestellt, dass das Blatt name richtig geschrieben ist (z.B. Tabelle1) und ich habe festgestellt, dass meine Daten-Quellen korrekt eingestellt sind.
Web-Suche noch nicht aktiviert bis viel. Und ich bin Total ratlos.
Alle Hilfe oder input ist willkommen!!!!
- Der Name des Blatts sollte ein '$' angehängt, ansonsten wird es definitiv nicht (noch gültig für die Visual Studio 2015) wie: "Sheet1$"
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ändern Sie die "Build Action" - Eigenschaft von Excel(.xlsx) zu Inhalten und "Copy to Output Directory" auf " Kopieren, wenn neuer.
Dieser arbeitete für mich, wenn ich habe den gleichen Fehler wie urs...
++ auch nicht vergessen zu durchsuchen und fügen Sie die excel-Datei in der Registerkarte Bereitstellung von Test.config-Datei, in der server-soution..:)
Sollten Sie sicherstellen, dass Ihre Implementierung aktiviert ist, in Ihr test-Einstellungen, die Sie gewählt haben!!!
Glück!!!
Ich hatte ein ähnliches problem aber war gerade versucht zu implementieren eines einfachen XML-Datei.
Das problem war der Dateiname der Datei, die ich wurde die Bereitstellung der zu lang war.
Hatte ich zwei Probleme, das eine war die miss-Schreibweise die gewünschte Tabelle in meine excel-Datei. Der andere und ich glaube, das wichtige war der Unterschied zwischen den
.xls
und.xlsx
- Dateien. Bei meiner Maschine habe ich die Office 2007 so automatisch die Erweiterung von excel-Dateien ist.xlsx
, aber eigentlich wollte ich schreiben einen test-case für ein Projekt wurde bereits umgesetzt und es wurde mit dieser DataSource:Erstellte ich eine excel-Datei in einem Computer, der die Office-version vor 2007 so konnte die Erweiterung
.xls
und dann zog ich diese excel-Datei auf meinem Rechner. Auf diese Weise konnte ich mein problem lösen.Lösungen, die ich ausprobiert
1) Hinzugefügt Daten-Datei im Abschnitt zur Bereitstellung von lokalen Einstellungen
2) Verändert die Eigenschaften der Datei "Inhalt" und "Kopieren, wenn neuer"
3) die Feste Codierung der Speicherort der Datei im deployment-Element-Attribut und in den connection-string in der app.config-Datei.
Keiner der oben arbeitete.
Schließlich fand ich heraus, dass die Registrierung nicht über die Jet-dlls registriert. Ich exportierte den Jet-Ordner(HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Jet) aus der Registrierung einer Maschine, auf der ich war nicht immer die Fehler und importiert, die auf der Maschine war ich immer die Fehler. Diese behoben das Problem für mich.
Den Namen des Blattes sollte ein '$' angehängt, ansonsten wird es definitiv nicht (noch gültig für die Visual Studio 2015) wie:
"Sheet1$"
.