【问题标题】:Can I not to count some method in total Unit Test TestMethod time output?我可以不计算单元测试TestMethod总时间输出中的某些方法吗?
【发布时间】:2015-03-20 13:43:12
【问题描述】:

我有一个单元 TestClass,里面有几个 TestMethods(它们都在计算 db procedure perfomance)。一些方法包括大而重的准备部分。比如它比方法本身长。我可以以某种方式使 vs 不包括它的时间到整个单元测试方法的总超时中吗?

我尝试使用带有 ClassInitialize 属性的方法,但是:

  1. 它因 ThreadAbortException 而中断,说“线程正在 中止”。
  2. 因为我Understand 它的时间被添加到第一次测试的时间 方法。

【问题讨论】:

  • 单元测试并不能很好地测试性能。
  • 你测试的目的是什么?如果你不想在你的测试中执行某些东西,那就模拟一下吧!
  • 尝试执行测试类的构造函数中的代码。这样你就可以在单元测试执行时间开始之前准备一些变量。

标签: c# unit-testing mstest


【解决方案1】:

我能想到的一种方法是创建一个从不进行任何断言的单独 TestMethod 并执行准备工作。然后确保始终在实际测试之前调用此方法。

但是,为了测试性能,您可能需要考虑使用https://msdn.microsoft.com/en-us/library/z9z62c29.aspx 中的一些分析工具

【讨论】:

  • 不知道为什么这被否决了。它不仅解决了 OP 提出的问题,而且还强调了一个事实,即有更好的方法来做到这一点(而不是强迫它进入 OP 的喉咙)。
  • 有趣的解决方案。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-12-08
  • 2011-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多