将一个大型项目从 VS2008 升级到 VS2013 后,由于找不到关联的数据文件,大量单元测试现在都失败了。原始的 DataSource 属性是由 VS2008 提供的测试连接字符串向导创建的,但在 VS2013 Pro 中不再可用。数据文件肯定在那里,在解决方案中完全相同的位置,并且所有的属性都设置为 Copy Always。我怀疑 DataSource 属性所需的参数已经发生了微妙的变化,但 MSDN 文档在这方面几乎没有提供什么帮助。
错误是:
结果消息:单元测试适配器未能连接到数据源或读取数据。有关解决此错误的详细信息,请参阅 MSDN 库中的“数据驱动单元测试故障排除”( http://go.microsoft.com/fwlink/?LinkId=62412 )。错误详细信息: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。