【问题标题】:Disable timeout for unit tests in C#在 C# 中禁用单元测试的超时
【发布时间】:2011-03-25 21:08:50
【问题描述】:

我遇到了一个问题,我的测试在 30 分钟后超时。关于设置无限超时的任何想法?我已经尝试过 Timeout(0),但 30 分钟后它仍然会引发超时。

我正在 Visual Studio 2008 中运行这些单元测试。

【问题讨论】:

  • 您将不得不提供更多信息,例如您正在测试什么类型的应用程序。
  • 您尚未指定正在使用的单元测试框架或指定超时的位置。
  • 你在测试什么超时?什么测试框架?什么是抛出超时?

标签: c# unit-testing timeout


【解决方案1】:

它对我有用。您必须将其添加到 C# 测试代码中,就在测试方法的上方:

[Timeout(TestTimeout.Infinite)]
[TestMethod()]

【讨论】:

    【解决方案2】:

    由于 30 分钟是 Visual Studio 测试框架中单元测试的默认超时时间,我猜测这就是您所指的。如果没有,请提供更多详细信息。

    您至少可以通过两种方式设置此超时时间:

    1. 使用属性装饰特定的TestMethods[Timeout(TestTimeout.Infinite)];
    2. 使用Test -> Edit Test Settings -> [settings you're using] -> Test Timeouts

    请注意,如果您使用 (2) 执行此操作,则必须在应用更改之前在 VS 中关闭并重新打开您的解决方案。

    【讨论】:

    • 是的 - 这是正确的 :) 这就是我要建议的。
    • 我尝试了这两个建议,但无法让它们发挥作用。我找不到 TestTimeout.Infinite 所以我尝试了 Timeout(Timeout.Infinite) 但没有用。通过设置菜单时,没有选项可以将超时设置为无限(我试过 00:00:00)。我可以进入的最长时间是 23:59:59。
    • TestTimeout 枚举可在 Microsoft.VisualStudio.TestTools.UnitTesting 中找到。也许您缺少“使用”/参考?
    • 至于设置菜单 - 你使用的是什么版本的 Visual Studio?我正在使用 VS2010,并且有一个复选框可以完全禁用超时。参见例如msdn.microsoft.com/en-us/library/ee256991.aspx中的描述。
    • 第一个适用于 VS2012。不确定第二个,因为我没有找到它。 +1
    猜你喜欢
    • 1970-01-01
    • 2015-11-15
    • 1970-01-01
    • 1970-01-01
    • 2011-01-05
    • 2016-12-02
    • 1970-01-01
    • 2011-08-13
    • 2018-12-07
    相关资源
    最近更新 更多