【问题标题】:How to stop NUnit TestRunner?如何停止 NUnit TestRunner?
【发布时间】:2018-04-01 10:14:45
【问题描述】:

我正在使用 VS 2017 Enterprise、TestDriven.Net V 4.1 中的 NUnit 版本 3.9.0.0(运行时版本 v4.0.30319,尝试最高 3.10.0.1 的不同版本)对 C# 解决方案进行单元测试-Alpha,操作系统 Windows 10 专业版。 该项目的程序集面向 .Net 4.0。

在大多数情况下它工作正常,但有时 NUnit 的行为变得不可预测,因此系统不再可以使用。实际发生的是,我正在开始一个非常简单的单元测试,并且它通过了。然后我再次开始相同的测试,系统卡住了。您无法停止测试线程,如下图所示(红色火箭图标在鼠标右键单击时没有反应):

我也无法在进程管理器中找到相关进程手动杀死它。 上下文菜单中的 NUnit 项保持灰色,无法从其中停止/重新启动测试,见下文:

唯一的可能是完全重启VS,然后你可以只进行一次测试,一切都重新开始。可能有什么问题?

【问题讨论】:

  • 我添加了 testdriven.net 标签。问题似乎是 nunit 代理进程过早终止,td.net 没有注意到。 td.net 创建和启用/禁用所有这些菜单项。
  • 谢谢查理,这也是我所怀疑的。但是你知道如何手动终止 nunit 进程吗?我无法通过流程管理器找到它。
  • 如果TestDriven.net没有自行停止,你可以杀死进程ProcessInvocation86.exe。它并不理想,但一种无需重新启动 VS 即可继续的方式。

标签: visual-studio-2017 nunit testdriven.net


【解决方案1】:

评论空间不足,所以...

我怀疑 TD.Net 可能能够在进程内或进程外运行测试。如果它使用 NUnit 自己的代理程序耗尽了进程,那么您将看到一个正在运行的进程 nunit-agent.exenunit-agent-x86.exe。如果您愿意,可以终止该进程。

但是,这听起来像是进程正在崩溃和终止。问题很可能是 TD.Net 没有注意到已经发生的事情。它正在等待来自进程的信号以指示运行已完成。如果是这种情况,那么它将永远不会重新启用禁用的控件。

您可以通过运行一些在 TD.NET 下不会导致问题的测试来测试这一点。这应该是一个需要一段时间的测试运行,因此您有时间终止代理进程。观看 TD.Net 的作用。它注意到你杀死了这个过程吗?如果没有,您有问题要向 TD.Net 报告。如果它确实注意到并重新启用控件,那么我们还没有了解问题的根源。

【讨论】:

  • 非常感谢查理,有趣的信息。下次卡住的时候试试。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多