【发布时间】:2015-10-07 16:42:56
【问题描述】:
将一个大型项目从 VS2008 升级到 VS2013,由于找不到相关的数据文件,大量单元测试现在失败了。原始的 DataSource 属性是由 VS2008 提供的测试连接字符串向导创建的,但在 VS2013 Pro 中不再可用。数据文件肯定在那里,在解决方案中完全相同的位置,并且所有的属性都设置为 Copy Always。我怀疑 DataSource 属性所需的参数发生了微妙的变化,但 MSDN 文档在这方面提供的帮助很少。
错误是:
结果消息:单元测试适配器未能连接到数据 源或读取数据。有关故障排除的更多信息 此错误,请参阅“数据驱动单元测试故障排除” (http://go.microsoft.com/fwlink/?LinkId=62412) 在 MSDN 库中。 错误详细信息:Microsoft Jet 数据库引擎找不到 对象'MatrixSampleResultGrid_ExcludeHiddenResults.csv'。确保 对象存在并且您拼写它的名称和路径名 正确。
之前一直报这个错误是因为数据文件被移动或者重命名了,属性没有更新,但是这里肯定不是这样的。
这是一个典型的当前DataSource属性定义:
[DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV", "|DataDirectory|\\MatrixSampleResultGrid_ExcludeHiddenResults.csv", "MatrixSampleResultGrid_ExcludeHiddenResults#csv", DataAccessMethod.Sequential)]
在 VS 解决方案中(即在磁盘上),数据文件的实际路径是
[theProjectRootFolder]\TestData\MatrixSampleResultGrid_ExcludeHiddenResults.csv
测试结果发布到
[theProjectRootFolder]\TestResults\[testrun_datetimestamp]\In and ...\Out
虽然我注意到没有任何数据文件被复制到 In 或 Out 文件夹中。这很重要吗?
对于 VS2008,这些属性多年来每天都保持不变,所以我只能得出结论,对于 VS2013,数据不再合适,但发生了什么变化?没有那个向导,我什至无法重建属性,所以我很茫然。
另外,我不知道“|DataDirectory|”的位置表示在测试运行的上下文中。
有人可以帮忙吗? TIA。
【问题讨论】: