当使用组合属性时,NUnit在Visual Studio下非常慢

本文关键字:Visual Studio 非常 NUnit 组合 属性 | 更新日期: 2023-09-27 18:10:15

我的设置是NUnit(最新的,2.6.什么的),VS13与r# 8和Win7。我非常惊讶地注意到,当我使用属性Combinatorial时,IDE变得极其缓慢。我们说的是在每次按键后在VS的灰色窗口等待几秒钟 !

我在谷歌上搜索过,但似乎没有任何相关的点击。我怀疑我们的本地设置是罪魁祸首(为什么一个人不能安装NUnit和r# ?!),但它可能会让其他人感兴趣,知道当这种情况发生时该怎么做。

我们已经注意到,随着测试用例数量的增加,延迟呈指数增长。这是其中一个方法的示例。

[Test]
[Combinatorial]
public void AddWaveformTest(
  [Values(null, "", "sec", "stringThatMayBulky")] string s1,
  [Values(null, "", "sec", "stringThatMayBulky")] string s1,
  [Values(null, "", "sec", "stringThatMayBulky")] string s3,
  [Values(null, "", "sec", "stringThatMayBulky")] string s4,
  [Values(int.MinValue, int.MaxValue, -1, 0, 1)] int i1,
  [Values(null, "", "sec", "stringThatMayBulky")] string s5,
  [Values(null, "", "sec", "stringThatMayBulky")] string s6,
  [Values(null, "", "sec", "stringThatMayBulky")] string s7,
  [Values(null, "", "sec", "stringThatMayBulky")] string s8,
  [Values(int.MinValue, int.MaxValue, -1, 0, 1)] int i2)
{
  ...
}

这是2600多万次操作,这可能很多,但在计算机术语中应该没有那么糟糕。对吧?我还注意到,直接原因并不是组合属性,而是Values属性。当我注释掉后者时,东西又可以工作了,而注释掉前者却没有任何改善…

当使用组合属性时,NUnit在Visual Studio下非常慢

你可能想检查这个线程,因为它看起来像resharper可能有一个错误在8。导致编辑窗口在每次击键后需要一段时间才能响应的问题。

在问题的评论中被搁置的部分是:

  • 安装和拆除是昂贵的:这个想法与第二点->
  • 在Resharper内部存在某种连续的测试(如ncrunch功能,或接近),但OP不认为它可能。

不要犹豫,来评论这个问题,我对它很好奇(顺便说一句,编辑器窗口不可用的时间是否与您的测试持续时间相匹配?)