【问题标题】:Why are tests taking longer to run in TeamCity than when run directly in NUnit?为什么在 TeamCity 中运行测试比直接在 NUnit 中运行需要更长的时间?
【发布时间】:2012-01-16 17:53:11
【问题描述】:

我有一些 C# 性能测试,基本上运行两种不同的方法并检查一种运行速度是否比另一种快。

当我在 NUnit 中本地运行它们时,其中一个测试的运行速度是另一个测试的十倍,所以我有一个 NUnit 测试,它使用 Stopwatch 来检查它是否至少快了一倍(以防万一回归)。但是当我在 TeamCity 中运行测试时,快速方法只比慢速方法快 1.5 倍?我希望硬件差异会产生一些影响,但不会影响这么大。这可能是什么原因造成的?

【问题讨论】:

    标签: c# performance nunit teamcity


    【解决方案1】:

    为了回答我自己的问题,问题原来是在 TeamCity 中为测试构建打开了代码覆盖率,因此这样做的开销使两个方法运行时更接近。希望这个答案在未来对其他人有所帮助。

    【讨论】:

    • 我实际上没有看到代码覆盖打开,在构建服务器上运行我的测试仍然需要将近一个小时,而在本地大约需要 7-8 分钟。对此有什么想法吗?
    • 您是否在两者上运行相同的类型(即调试而不是发布)?还要查看构建服务器上测试的持续时间——它们都同样慢,还是其中一个慢很多?
    • 非常感谢您的回复!不幸的是,其中许多实际上要慢得多,而不仅仅是一个。他们正在进行数据库调用,但这并不重要,不是吗?我相信我在两者中都在调试中运行。
    • 它可能是各种各样的东西。构建服务器是否忙于做其他事情? nunit的版本是否相同?构建服务器和数据库之间的网络是否很慢?可能值得从构建服务器获取工件并通过本地 NUnit 运行它们,看看这是否能说明差异。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-20
    • 2011-06-11
    相关资源
    最近更新 更多