如何从VS2010数据库项目中的Excel中加载测试数据

时间:2011-12-12 20:46:45

标签: .net visual-studio-2010 database-project

我正在使用VS2010数据库项目,并希望能够加载:

  • 将数据引用到任何实例(隔离开发,测试,...生产)

  • 仅将数据测试到开发和测试数据库中。

据我了解,参考数据没有问题,我将脚本用于部署后的脚本,该脚本将无条件运行。

对于测试数据,我知道我应该使用数据生成计划;并且我可以使用数据绑定生成器从数据源(如Access,Excel或文本文件)加载数据。 MSDN has a walkthrough on generating test data from an Excel spreadsheet,乍一看看起来像我需要的,但它使用绝对路径来引用Excel文件。这似乎与在源代码管理中拥有数据库项目不兼容,由可能在不同位置拥有工作区的不同用户访问。

在这种情况下加载测试数据的“最佳实践”是什么?我可以在连接字符串中使用相对路径,并确保在所有开发人员计算机上始终以相同的方式解释它吗?

我希望找到类似|DataDirectory| substitution string的语法,允许相对于数据库项目目录指定路径。

2 个答案:

答案 0 :(得分:0)

使用Excelreader使用以下链接将Excel数据加载到数据集 http://exceldatareader.codeplex.com/

答案 1 :(得分:0)

在进一步阅读时,我认为数据生成计划对于这种情况来说是错误的工具。

我现在正在做的是使用测试数据创建一个部署后脚本,然后确保使用SQL命令变量有条件地执行它。每个部署目标(独立开发; UAT; PROD)都可以拥有自己的SQL命令变量文件(.sqlcmdvars),它将控制脚本是否运行。

E.g。要仅为IsolatedDev数据库加载测试数据,我可以在部署后脚本中使用以下内容:

IF '$(DatabaseName)' = 'IsolatedDev'
BEGIN
    ... insert statements to add test data
END

并确保测试数据不会无意中加载到生产数据库中。

请随时与经验和最佳实践联系。