2009-07-07 5 views
1

Ich versuche, ein Excel 2007 als Datenquelle in meinem VS 2008 Testprojekt einen Komponententest zu verwenden.Excel 2007 DataSource Verbindungsfehler in Visual Studio 2008 Komponententest

Config-Datei:

<configuration> 
    <configSections> 
     <section name="microsoft.visualstudio.testtools" 
       type="Microsoft.VisualStudio.TestTools.UnitTesting.TestConfigurationSection, Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/> 
    </configSections> 
    <connectionStrings> 
     <add name="MyExcelConn" 
      connectionString="Dsn=Excel Files;dbq=SearchTestValues.xlsx;defaultdir=.; driverid=790;maxbuffersize=2048;pagetimeout=5" 
      providerName="System.Data.Odbc" /> 
    </connectionStrings> 
    <microsoft.visualstudio.testtools> 
     <dataSources> 
      <add name="MyExcelDataSource" 
       connectionString="MyExcelConn" 
       dataTableName="Sheet1$" 
       dataAccessMethod="Sequential"/> 
     </dataSources> 
    </microsoft.visualstudio.testtools> 
</configuration> 

Mein Testcode:

[TestMethod] 
[DeploymentItem("SearchTestValues.xlsx")] 
[DataSource("MyExcelDataSource")] 
public void ShouldReturnResultsValidity() 
{ 
    var minDate = (DateTime)TestContext.DataRow["MinDate"]; 
    var maxDate = (DateTime)TestContext.DataRow["MaxDate"]; 
    var minStatus = (int)TestContext.DataRow["MinStatus"]; 
    var maxStatus = (int)TestContext.DataRow["MaxStatus"]; 

    var criteria = new SearchCriteria(minDate, maxDate, minStatus, maxStatus); 

    Assert.IsTrue(criteria.IsValid()); 
} 

Die Excel-Datei ist im Stammordner des Projekts. Die Datei BuildAction ist auf Inhalt festgelegt und Bereitstellen wird festgelegt, um zu kopieren, wenn neuere. Ich habe die Datei auch zur Liste der Bereitstellungselemente hinzugefügt, sodass die Excel-Datei beim Ausführen des Tests im out-Ordner des Ordners TestResults bereitgestellt wird.

Wenn ich diesen Test ausführen, hier ist der Fehler, den ich bekommen:

The unit test adapter failed to connect to the data source or to read the data. For more information on troubleshooting this error, see "Troubleshooting Data-Driven Unit Tests" (http://go.microsoft.com/fwlink/?LinkId=62412) in the MSDN Library. 
Error details: ERROR [42S02] [Microsoft][ODBC Excel Driver] The Microsoft Office Access database engine could not find the object 'Sheet1$'. Make sure the object exists and that you spell its name and the path name correctly. 

Irgendwelche Ideen, warum ich diese Störung erhalte?

Dank

Antwort

0

versuchen

dataTableName="[Sheet1$]" 
+0

Hat nicht funktioniert. Diesmal ist der Fehler: Der Einheitentestadapter konnte keine Verbindung zur Datenquelle herstellen oder die Daten lesen. Weitere Informationen zum Beheben dieses Fehlers finden Sie unter "Fehlerbehebung für datengesteuerte Komponententests" (http://go.microsoft.com/fwlink/?LinkId=62412, möglicherweise in englischer Sprache) in der MSDN Library. Fehlerdetails: FEHLER [42000] [Microsoft] [ODBC Excel Driver] Ungültige Klammerung des Namens '[Sheet1 $'. –

+0

Nur um sicherzustellen, überarbeitete ich die DataTableName genau wie "[Sheet1 $]", aber die Fehlermeldung scheint die schließende Klammer zu verpassen. Trotzdem funktioniert es nicht. –

0

Wir hatten das gleiche Problem. Wir haben versucht, Treiber, Konfigurationen, etc. zu ändern.

Sicher speichern Sie die Excel-Tabelle als 97-2003 kompatibel (a .xls eher, dass eine .xlsx) das Problem löst. Ich bin mir nicht sicher, ob das in Ihrem Fall machbar ist.

2

Um dieses Problem zu beheben, müssen Sie die Eigenschaften der Excel-Datei ändern.

Build-Aktion: Content kopieren Ausgabeverzeichnis: Kopieren wenn neuer

Dann sollte es funktionieren!

0

Ich hatte das gleiche Problem bei der Bereitstellung meiner Tests mit MStest.exe - Installation VS 2008 auf dem Zielrechner für mich behoben. . .