0

テストメソッドは、DataSource 属性を介して Excel ワークブックに接続します。次のようになります。

[TestMethod, Priority(3)]
[DataSource("System.Data.OleDB",
            "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=|DataDirectory|\\TestDataWorkbook.xlsx; Extended Properties='Excel 12.0;HDR=yes';",
            "TestDataSheet$",
            DataAccessMethod.Sequential)]

そして、これは問題なく動作します。しかし、同じ接続文字列を App.Config のように追加しようとすると

<configuration>
  <configSections>
    <section name="microsoft.visualstudio.qualitytools" type="Microsoft.VisualStudio.TestTools.UnitTesting.TestConfigurationSection, Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
  </configSections>
  <connectionStrings>
    <add name="TestDataConnectionString" connectionString="Provider=Microsoft.ACE.OLEDB.12.0; Data Source=|DataDirectory|\\TestDataWorkbook.xlsx; Extended Properties='Excel 12.0;HDR=yes';" providerName="System.Data.OleDb" />
  </connectionStrings>
  <microsoft.visualstudio.qualitytools>
    <dataSources>
      <add name="MyTestData" connectionString="TestDataConnectionString" dataTableName="TestDataSheet$" dataAccessMethod="Sequential"/>
    </dataSources>
  </microsoft.visualstudio.qualitytools>
... other configuration settings

そしてそれに接続しようとします:

[TestMethod, Priority(3)]
[DataSource("MyTestData")]

次のエラーが発生します。

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: The Microsoft Office Access database engine could not find the object 'MyTestData$'.  Make sure the object exists and that you spell its name and the path name correctly.

エラーはシート名にあります。ワークブックへの接続があります (ワークブックと接続文字列の名前を変更して確認しました) が、最初の例のようにシート名がテーブル名として認識されません。

誰かがこの状況を認識していますか、それとも誰かが正しい方向へのヒントを持っていますか?

4

1 に答える 1