当我取消单元测试时 运行 当前 运行ning 测试是否完成?

When I cancel a unit test run does the currently running test complete?

任何人都可以告诉我:当我在单元测试 运行 期间在测试资源管理器 window 中按取消时,执行是立即终止,还是当前 运行 ning测试居然运行完成了? (或者它取决于正在使用哪个测试适配器?) 我正在使用 VS2012。一些解决方案使用 Microsoft 测试适配器,一些使用 NUnit(如果有所不同)。

is execution simply terminated there and then, or will the currently running test actually run to completion?

找到说明

的文档

This stops the test run at its current location. The test being run is completed, but no additional tests are run. Results from any already completed tests in the current test run are retained. The status of the test that was running when you clicked Stop changes to Aborted. The status of tests that have not yet completed changes from Pending to Not Executed.

强调我的

因此,如果可能的话,当您取消时,似乎当前正在 运行ning 进行的测试将完成,但不会进行进一步的测试 运行。

请注意,以上是 MSTest 的报价。我不确定其他测试 运行ners.

两部分答案...

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

  2. 关于 NUnit...

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

    如果您使用的是 NUnit [V2] VS 适配器,线程会立即被杀死,所有的执行都会停止。没有拆解 运行.