任何人都可以指出我如何获得NUnit测试以运行.sql文件来创建/设置数据库。
我知道NUnit中的TestFixtureSetUp和TestFixtureTearDown属性/方法。
所以我知道如何在所有或每个单元测试之前和之后调用方法。
我只是不确定如何以编程方式在SQL Server 2005数据库中再次加载和执行.sql文件的内容。
任何例子?
这是我们的TDD / CI的一部分。我们希望在执行单元测试之前创建数据库并拆除数据库。
干杯,
- 李
更新: 我现在已经在单元测试之外使用批处理文件来调用sqlcmd来创建数据库/运行.sql脚本。这似乎工作正常。
答案 0 :(得分:1)
我在.bat文件中使用了sqlcmd.exe
来运行.sql脚本作为CI构建的一个单独部分,以便在单元测试之前立即执行。
这似乎是一种可以接受的方式。
答案 1 :(得分:0)
我使用的文本文件每行有一个sql语句。 TestFixtureSetUp方法读取此文件(逐行)并使用ADO.NET的IDbCommand执行每个sql语句:
类似的东西:
using (IDbConnection cnn = OpenConnection(connectionString))
foreach (string line in ReadFile(sqlFile))
using (IDbCommand cmd = cnn.CreateCommand()) {
cmd.CommandText = line;
cmd.ExecuteNonQuery();
}
您可能还想查看SQL Installer.NET
之类的内容答案 2 :(得分:0)
查看Fluent-Migrator 它能够针对SQL Server 2005运行SQL脚本,并且可以从nant运行。
该项目的目的是允许开发人员在域更改时迁移数据库,特别是TDD,但如果需要,还允许撤消更改。