当我取消单元测试运行时,当前正在运行的测试是否完成?

时间:2018-03-16 14:05:57

标签: unit-testing visual-studio-2012 nunit vs-unit-testing-framework

有人可以告诉我:当我在单元测试运行期间在测试资源管理器窗口中按下取消时,执行只是在那里终止然后,或者当前正在运行的测试是否实际运行完成? (或者它取决于使用哪个测试适配器?) 我正在使用VS2012。有些解决方案使用Microsoft测试适配器,有些使用NUnit(如果它有所不同)。

2 个答案:

答案 0 :(得分:2)

两部分答案......

  1. 确实依赖于特定的适配器。测试资源管理器调用适配器的ITestExecutor.Cancel()方法,该点之后发生的情况取决于适配器。

  2. 关于NUnit ......

    如果您正在使用NUnit 3 VS适配器并使用NUnit 3框架运行测试,则通过中止正在执行当前测试(测试)的线程立即取消测试。 [Parens,因为您可能正在与NUnit 3并行运行多个测试。]没有拆分。

    如果您使用的是NUnit [V2] VS适配器,则会立即终止线程并停止所有执行。没有拆机。

答案 1 :(得分:0)

  

执行只是在那里终止,然后,或者当前正在运行的测试是否实际运行完成?

找到陈述的文件

  

这会停止当前位置的测试运行。 正在运行的测试已完成,但未运行其他测试。保留当前测试运行中任何已完成测试的结果。单击“停止”更改为“已中止”时运行的测试的状态。尚未完成的测试状态从Pending to Not Executed更改。

强调我的

因此,如果可能的话,当您取消时将显示当前正在运行的测试将完成,但不会运行其他测试。

请注意,以上是MSTest的报价。我不确定其他测试跑步者。