进程在测试场景中意外退出后执行方法?

时间:2013-04-11 07:41:48

标签: c# mstest

有没有办法在C#中执行一个方法后执行过程意外退出?

我目前的情况是:一个MSTest单元测试项目,在执行过程中(在本例中只有Thread.Sleep)单元测试我停止调试过程,我可以指定一个必须调用的方法吗?

(在这种情况下可能是MSTest属性?)我已经尝试过:完成并实现IDisposable

2 个答案:

答案 0 :(得分:1)

如果您手动停止任何进程(即通过终止IDE中的调试过程,或通过终止任务管理器中的进程),您将绕过代码的正常运行。所有内容都会被激活终止,并且您的Dispose或其他关闭方法都不会触发:所有代码执行都会停止。

请注意,如果您从流程分离,代码将继续运行,但不会要求您的流程停止。 (另外,作为参考:如果您从任务管理器的“应用程序”选项卡中“结束任务”,这实际上请求应用程序停止 - 这允许关闭代码触发,但不保证应用程序将及时关闭。)

简而言之:如果停止调试过程,根据定义不会执行任何代码。我怀疑你需要看一个替代方法:可能有一个原因,你想要调用你的方法,并且可能有一个不同的解决方案,你可以尝试。

答案 1 :(得分:0)

如果您正在收听的流程不是启动的流程(在您的情况下似乎如此),我看不到其他选项,例如简单的Timer实施如果指定的进程在系统内存中可用的进程之间,则在每个tick控制。