是否有一个属性可以立即为TestClass中的所有测试设置测试超时?

时间:2014-03-30 15:42:14

标签: c# .net unit-testing attributes mstest

我的mstest TestClass现在包含35个测试,而且可能会增长。测试的方法通常是递归的(因此可能存在导致无限循环的错误),因此我想为这些测试设置超时。

有没有办法(理想情况下是一个属性)为一个地方的所有测试设置相同的超时? TimeoutAttribute只能用于方法,而不能用于类。而且我真的不喜欢复制TimeoutAttribute 35次。

或者,我可以创建自己的Attribute,它可以与类一起使用,并使用指定的属性标记该类中的每个方法吗?

1 个答案:

答案 0 :(得分:2)

您需要通过测试运行器配置来完成此操作。 (更多细节可以找到here)。

  

使用测试设置文件为所有测试设置测试运行超时

     
      
  1. 打开解决方案资源管理器。
  2.   
  3. 在解决方案的“解决方案项目”文件夹中,双击测试设置文件。 (出现“配置设置”对话框。)
  4.   
  5. 选择测试超时。
  6.   
  7. 如果总执行时间超过:
  8. ,请检查中止测试运行   
  9. 设置测试运行超时值,以小时,分钟和秒为单位。
  10.   
  11. 选择保存,然后选择关闭。
  12.         

    要使此设置生效,请编辑您的测试设置   必须是有效的测试设置。有关详细信息,请参阅How to: Select the Active Test Settings from Microsoft Visual Studio