我正在使用可视化工作室内置单元测试框架 -Microsoft.VisualStudio.TestTools.UnitTesting
命名空间。
我需要暂停测试代码中的单元测试执行(最好允许开发人员通过按某个按钮或其他东西来恢复测试)。
有没有内置的方法可以做到这一点?
我知道我可以使用Thread.Sleep()
简单地暂停几秒钟,但是有没有办法暂停/恢复或以某种方式提示用户?可能另一个明显的解决方案是调用MessageBox.Show()
但这需要引用整个Windows.Forms系列。
附言这背后的原因是:我有一个"模糊"集成测试,有时会失败,但我无法确切地说出原因(这是一个通过Selenium
自动化浏览器的 UI 测试,浏览器屏幕快速闪烁,我无法分辨那里发生了什么......由于某种原因,我在调试测试时无法捕获此故障,只有在定期运行它时才能捕获此故障......
更新:我想没有内置的方法可以做到这一点,这实际上是有道理的,因为测试应该在没有任何用户交互的情况下运行。猜猜,一个简单的Sleep()
甚至Console.ReadLine()
简单地冻结执行,直到开发人员在测试资源管理器中单击"取消"。
如果您知道代码中发生了事件,即抛出了异常,那么您可以等待调试器,直到它被附加。
Console.WriteLine("Waiting for debugger to attach");
if(WeirdBehaviourOccurred)
while (!Debugger.IsAttached)
{
Thread.Sleep(100);
}
Console.WriteLine("Debugger attached");