我是单元测试项目的新手。我们目前正在使用 NUnit,因为我们等待 Resharper 许可证进来。
所以我正在为单元测试项目修改我们的数据库标准化。问题是之前的实现包含了一个 SQL 脚本文件,随着时间的推移,随着客户端请求的数据库架构发生变化,该文件最终变得过时。
我们使用Mite来保持数据库模式是最新的。所以我们需要做的是创建一个进程来复制包含所有模式文件的当前 db 文件夹,或者创建一个导航到脚本文件夹的方法,并在测试之前执行脚本文件。
- 当前的想法
- 将 db scripts 文件夹从启动项目复制到其构建的测试文件夹中。
- 有一种方法可以从 Test 文件夹中引用 db 文件夹。
愿意接受除此之外的进一步建议。
当前实施:
我正在使用Microsoft.SqlServer.Management.Common
&Microsoft.SqlServer.Management.Smo
通过测试项目扩展 SQL Server 访问。
protected virtual void BeforeTest()
{
...
using(var conn = (SqlConnection) CPLGlobal.GetConnection()) {
conn.Open();
var server = new Server(new ServerConnection(conn));
//Check if Database Exists, if so Delete the database
if(server.Databases.Contains("cplstore_int")) {
server.KillDatabase("cplstore_int");
}
//Create the database and obtain reference to it for processing.
server.Databases.Add(new Database(server , "cplstore_int"));
var db = server.Databases["cplstore_int"];
}
...
}