通过查看测试结果文件(/TestResults/*.trx),我能够找到问题的根源。它提供了后台线程中发生的异常的完整详细信息,一旦我解决了该异常,“停止...”错误消失了。
以我为例,我在单元测试中无意中启动了GUI,最终导致引发System.ComponentModel.InvalidAsynchronousStateException。
所以我的.trx文件包含:
<RunInfo computerName="DT-1202" outcome="Error" timestamp="2013-07-29T13:52:11.2647907-04:00">
<Text>One of the background threads threw exception:
System.ComponentModel.InvalidAsynchronousStateException: An error occurred invoking the method. The destination thread no longer exists.
at System.Windows.Forms.Control.WaitForWaitHandle(WaitHandle waitHandle)
at System.Windows.Forms.Control.MarshaledInvoke(Control caller, Delegate method, Object[] args, Boolean synchronous)
at System.Windows.Forms.Control.Invoke(Delegate method, Object[] args)
at System.Windows.Forms.Control.Invoke(Delegate method)
...
</Text>
</RunInfo>
它没有提供有关导致错误的测试的任何信息,但确实向我显示了异常在哪里,这非常有用。