因此,我正在尝试找出一种在Visual Studio中适当地对数据库过程进行单元测试的方法,以便将其集成到我们的部署管道中。
我现在正在做的是创建一个数据库项目并将其链接到我们的数据库。然后使用Visual Studio对程序进行单元测试。问题在于,以这种方式对程序进行单元测试将对实际数据库中的数据进行更改(我不希望这样做)。另一个问题是,当有人在不更新数据库项目的情况下对数据库进行了更改
我可以:
在每次单元测试后进行回滚(但是有些过程包含commit
,因此即使我rollback
中的c#
,某些部分仍然会被提交)
创建测试数据库(在我的情况下不是一个选择)
创建一个内存数据库(我更喜欢此选项。我签出了SQLite
。但是它似乎不支持过程)
任何建议或建议都会受到赞赏
答案 0 :(得分:2)
- 创建一个内存数据库(我更喜欢此选项。我签出了SQLite。但是它似乎不支持过程)
SQL Server不支持内存中选项
- 创建一个测试数据库(在我的情况下不是一个选择)
这通常是针对实际数据库进行测试的最佳选择。
测试应相互隔离执行,以产生一致且可信赖的结果。
没有人会破坏您的测试数据库,因为您将运行一个脚本来创建它并在测试之前填充所需的数据。
- 在每个单元测试之后进行回滚(但是有些程序包含提交,因此即使我在c#中回滚,某些部分仍然会 变得坚定
尝试使用TransactionScope Class,它应回滚测试期间提交的内部事务。
但是,如果使用的数据库被其他人使用,则测试可能会失败,因为有人进行了更改。