运行 .sql 脚本到 SQL 创建数据库的单元测试
任何人都可以指出我如何获得 NUnit 测试来运行 .sql 文件来创建/设置数据库。
我了解 NUnit 中的 TestFixtureSetUp 和 TestFixtureTearDown 属性/方法。
所以我知道如何在所有或每个单元测试之前和之后调用方法。
我只是不确定如何以编程方式在 SQL Server 2005 数据库上加载和执行 .sql 文件的内容。
有什么例子吗?
这是我们 TDD/CI 的一部分。我们希望在执行单元测试之前创建数据库并在执行单元测试之后拆除数据库。
干杯,
--李
更新: 我现在已经使用批处理文件调用 sqlcmd,在单元测试之外创建了数据库/运行了 .sql 脚本。这似乎运作良好。
Can anyone point me in the direction of how I could get a NUnit test to run a .sql file to Create / Setup a database.
I know about the the TestFixtureSetUp and TestFixtureTearDown attributes / methods in NUnit.
So I KNOW how to call methods before and after all or each unit tests.
I'm just unsure of how to load and execute the contents of a .sql file agains a SQL Server 2005 database programatically.
Any examples?
This is part of our TDD / CI. We are wanting to create the database before and tear down the database after executing unit tests.
Cheers,
-- Lee
UPDATE :
I've now pulled out the creation of the database / running of the .sql scripts outside of the unit tests using a batch file to call sqlcmd. And that seems to work fine.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我在 .bat 文件中使用
sqlcmd.exe
来运行 .sql 脚本,作为 CI 构建的单独部分,在单元测试之前立即执行。这似乎是一种可以接受的做法。
I've used
sqlcmd.exe
in a .bat file to run the .sql scripts as an separate part of the CI build to execute immediately before the Unit Tests.This seems to be an acceptable way of doing it.
我使用一个文本文件,每行一个sql语句。 TestFixtureSetUp 方法读取此文件(逐行)并使用 ADO.NET 的 IDbCommand 执行每个 sql 语句:
类似:
您可能还想查看类似 SQL Installer.NET
i use a text file with one sql statement per line. the TestFixtureSetUp method reads this file (line by line) and executes each sql statement with ADO.NET's IDbCommand:
something like:
you might also want to have a look at something like SQL Installer.NET
看看 Fluent-Migrator。
它能够针对 SQL Server 2005 运行 SQL 脚本,并且可以从 nant 运行。
该项目的目的是允许开发人员在域更改(特别是 TDD)时迁移数据库,但如果需要,也允许逆转更改。
Have a look at Fluent-Migrator.
It has the ability to run SQL scripts against SQL Server 2005 and can be run from nant.
The purpose of the project is to allow the developer to migrate the database as the domain changes, particularly TDD, but also allow the reversal of changes if so desired.