2009-07-07 42 views
1

私のVS 2008テストプロジェクトの単体テストでExcel 2007をデータソースとして使用しようとしています。Excel 2007 Visual Studio 2008単体テストでのデータソース接続エラー

設定ファイル:

<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> 

私のテストコード:

[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()); 
} 

Excelファイルは、プロジェクトのルートフォルダにあります。ファイルBuildActionがContentに設定され、が配置されます。が新しい場合はコピーに設定されます。また、テストを実行するときにExcelファイルがTestResultsフォルダのoutフォルダに展開されるように、ファイルをDeployment Itemsのリストに追加しました。

私はこのテストを実行すると、ここで私が得るエラーは次のとおりです。

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. 

すべてのアイデアは、私はこのエラーを取得していますなぜですか?

おかげ

答えて

0

は、私たちは同じ問題を抱えていた

dataTableName="[Sheet1$]" 
+0

動作しませんでした。今回は、エラーは次のとおりです。 ユニット・テスト・アダプターがデータ・ソースへの接続またはデータの読み取りに失敗しました。このエラーのトラブルシューティングの詳細については、MSDNライブラリの「Data-Driven Unit Testのトラブルシューティング」(http://go.microsoft.com/fwlink/?LinkId=62412)を参照してください。 エラーの詳細:ERROR [42000] [Microsoft] [ODBC Excel Driver] '[Sheet1 $'のブラケットが無効です。 –

+0

ちょうど確かめるために、私は "[Sheet1 $]"のようにdataTableNameを改訂しましたが、エラーメッセージには閉じ括弧がないようです。それにもかかわらず、それは動作しません。 –

0

を試してみてください。

Excelスプレッドシートは、97-2003と互換性があります(.xlsxではなく.xls)が問題を解決していることを確認してください。これがあなたのケースで実行可能かどうか確かめないでください。

2

この問題を解決するには、Excelファイルのプロパティを変更する必要があります。

ビルドアクション:出力ディレクトリにコンテンツ コピー:新しい

そして、それが動作するかどうかをコピーしてください!

0

mstest.exeでテストを展開するときに同じ問題が発生しました。ターゲットマシンにVS 2008をインストールすると、問題が解決しました。 。 。

関連する問題