テストメソッドは、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.
エラーはシート名にあります。ワークブックへの接続があります (ワークブックと接続文字列の名前を変更して確認しました) が、最初の例のようにシート名がテーブル名として認識されません。
誰かがこの状況を認識していますか、それとも誰かが正しい方向へのヒントを持っていますか?