【发布时间】:2015-08-27 12:06:50
【问题描述】:
我目前正在通过 Visual Studio 运行测试。在运行所有测试之前,我会自动创建一定数量的具有已知凭据的用户,并在运行结束时删除这些用户。但是,有时我需要中途取消我的测试。在这些情况下,测试永远没有机会清理,这意味着测试运行中留下了虚假的用户信息,并可能导致下一次测试运行崩溃(当它试图将用户信息添加到数据库中时)。即使取消测试,是否有强制 Visual Studio/mstest 运行清理方法?
我知道一种选择是进行测试检查并确保用户信息不存在,如果它确实在创建新用户之前将其删除。但这仍然不能解决取消测试运行留下不需要的测试数据的问题。
更新:
很抱歉传达错误,但是在测试开始时清理数据不是一种选择。我对这个问题给出了一个非常简单的看法,但简单地说,我没有简单的方法来确保在测试开始时不存在测试数据。所有清理都必须在测试结束时进行。
【问题讨论】:
-
我会订阅一个事件处理程序,它会在您取消或自然完成时触发,并在这种情况下进行清理
-
如果在测试运行之前执行清理会怎样?
-
为什么不能在测试前删除数据?这是您唯一的选择,因为从调试器中取消测试会停止所有执行
-
@SamHolder 一旦测试停止,我就无法获取数据。我可以手动删除它,但是使用我拥有的工具,此时我无法通过我的代码真正删除它,这就是为什么我想在可能的情况下取消测试后删除它。
-
我不确定您为什么要区分“测试开始”和“测试结束”。在任何两次运行之间,这些本质上是相同的。你说你可以手动删除测试数据——这涉及到什么?
标签: c# visual-studio visual-studio-2013 mstest specflow