数据驱动单元测试问题
本文关键字:问题 单元测试 数据驱动 | 更新日期: 2023-09-27 18:09:52
我有一些麻烦让我的单元测试被设置为使用Excel .xlsx数据源。
My App.config file:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="microsoft.visualstudio.testtools" type="Microsoft.VisualStudio.TestTools.UnitTesting.TestConfigurationSection, Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</configSections>
<connectionStrings>
<add name="TestData" connectionString="Dsn=Excel Files;dbq=TestData.xlsx;defaultdir=.; driverid=790;maxbuffersize=2048;pagetimeout=5" providerName="System.Data.Odbc" />
</connectionStrings>
<microsoft.visualstudio.testtools>
<dataSources>
<add name="GetAllCellNamesTest" connectionString="TestData" dataTableName="GetAllCellNamesTest$" dataAccessMethod="Sequential"/>
</dataSources>
我已经验证它正在查找TestData.xlsx
,并且有一个名为GetAllCellNamesTest
的表。
[TestMethod()]
[DeploymentItem("TestProject''TestData.xlsx")]
[DataSource("GetAllCellNamesTest")]
public void GetAllCellNamesTest()
{
// ... test code
TestData.xlsx
正在被复制到测试结果目录中,所有不试图引用数据源的单元测试都通过了。
然而,这个测试失败了,显示以下消息:
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 Access database engine could not find the object 'GetAllCellNamesTest$'. Make sure the object exists and that you spell its name and the path name correctly. If 'GetAllCellNamesTest$' is not a local object, check your network connection or contact the server administrator.
我真的不确定我的设置在哪里是错误的,我在MSDN上遵循这个演练来获得设置:演练:使用配置文件来定义数据源。请注意,我确实将section
版本更改为10.0.0.0
,因为我使用的是。net 4.0(根据页面底部的注释)。
编辑:哦,所有文件都在我的电脑上。
您是否尝试过使用完整的文件路径?
文件是只读的吗?
您还可以指定您想要部署的文件/目录作为TestSettings的一部分。这将为您节省为每个测试方法放置deploymenttem属性的工作量。
您使用配置后;
<configSections>
<section name="microsoft.visualstudio.testtools"
type="Microsoft.VisualStudio.TestTools.UnitTesting.TestConfigurationSection,
Microsoft.VisualStudio.QualityTools.UnitTestFramework,
Version=10.0.0.0, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a"/>
</configSections>