【问题标题】:MS Visual Studio Unit Tests take forever to close - even if there's no code in the testMS Visual Studio 单元测试需要永远关闭 - 即使测试中没有代码
【发布时间】:2013-05-18 23:30:57
【问题描述】:

为什么会发生这种情况?我的测试中没有代码:

[TestClass]
public class ApiClientTest
{
    [TestMethod]
    public void ApiTestSampleUseCase()
    {
        TestCleanup();
    }

    public void TestCleanup()
    {
        //DeleteUsers();
    }
}

然而,当我运行它时,大约需要 1 分钟才能完成。它过去了,它只需要永远。我在 DeleteUsers 之后设置了一个断点,它立即被击中;延迟是在测试完成之后。

【问题讨论】:

  • 检查您的bin 目录 - 由于某些难以理解的原因,MSTest 每次 运行测试时都会将所有引用的程序集复制到一个新目录中。 (不过,这些是可以安全删除的。)也许它还会做其他事情,导致它在多次运行后变慢......
  • 成功了。随意发布这个作为答案,我会相应地标记它。知道如何防止这种情况发生吗?
  • 太棒了;见下文(我最初将其作为评论发布,因为我觉得这是在黑暗中拍摄)。

标签: visual-studio-2010 visual-studio unit-testing


【解决方案1】:

检查您的bin 目录 - 出于某种难以理解的原因,MSTest 会在您每次运行测试时将所有引用的程序集复制到一个新目录中。 (不过,这些是可以安全删除的。)也许它还会做其他事情,导致它在多次运行后变慢...根据this answerthis documentation,您可以禁用此行为。

如果可能,我建议切换到 NUnit,最好与 FluentAssertions 结合使用(由于 MSTest 中奇怪的设计决策数量不少,例如这种行为,缺乏易于使用的参数化测试,以及即使[TestInitialize] 抛出异常也会运行测试的事实)。

【讨论】:

  • 甜蜜 - 我现在将所有内容都转换为 Nunit + FA。干杯:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-12-05
  • 2010-09-09
  • 2019-01-28
  • 2010-09-18
  • 1970-01-01
  • 1970-01-01
  • 2016-10-30
相关资源
最近更新 更多