Unit testing 当测试执行停止时执行自定义方法
我们的情况是,用作测试环境db的数据库必须保持干净。这意味着每个测试都有一个清理方法,该方法将在每次执行时从数据库中删除测试所需的所有数据后运行 我们使用Specflow,为了实现保持数据库干净的目标,如果测试执行没有停止,则可以使用该工具访问数据库。但是,在开发测试用例的过程中,测试执行会暂停,因此数据库中生成的数据不会被清除 问题是,当我在VS 2013中按下“暂停执行”按钮时会发生什么?VS如何停止执行?将调用什么方法?可以定制吗Unit testing 当测试执行停止时执行自定义方法,unit-testing,visual-studio-2013,mstest,specflow,Unit Testing,Visual Studio 2013,Mstest,Specflow,我们的情况是,用作测试环境db的数据库必须保持干净。这意味着每个测试都有一个清理方法,该方法将在每次执行时从数据库中删除测试所需的所有数据后运行 我们使用Specflow,为了实现保持数据库干净的目标,如果测试执行没有停止,则可以使用该工具访问数据库。但是,在开发测试用例的过程中,测试执行会暂停,因此数据库中生成的数据不会被清除 问题是,当我在VS 2013中按下“暂停执行”按钮时会发生什么?VS如何停止执行?将调用什么方法?可以定制吗 specflow使用MSTest框架,没有修改的选项。我不
specflow使用MSTest框架,没有修改的选项。我不知道这对您有多实际,但在我看来,您有两个选择:
- 在测试开始和结束时运行清理代码
- 为每个测试创建一个新数据库
如果您使用EF6,并且可以将
IDBSet
切换到由内存iQuery实现支持的其他实现,那么这不会太麻烦
当前如何清理数据库?您是否使用SpecFlow钩子(例如AfterScenario)来执行DB清理代码?@Fresh,是的,这是正确的。当您停止执行时,应用程序将被卸载。(类似于taskkill/im app.exe/f
)此时无法进行进一步的交互。