8

如果测试的运行时间超过一定时间(比如 500 毫秒),我希望我的测试失败,因为当大量缓慢的测试负载增加时,它会很糟糕,并且每次运行测试套件时都会突然出现很大的延迟。Nose 是否有任何插件或任何东西可以做到这一点?

4

2 回答 2

11

对于时间很重要的情况(例如实时要求):

http://nose.readthedocs.org/en/latest/testing_tools.html

nose.tools.timed(limit)

测试必须在规定的时限内完成才能通过。

示例使用:

 from nose.tools import timed
 @timed(.1)
 def test_that_fails():
     time.sleep(.2)
于 2012-07-24T16:48:47.693 回答
7

我恭敬地建议改变“破碎”的含义是一个坏主意。

失败/“红色”测试的含义永远不应是“此功能已损坏”。做任何其他事情都有可能稀释测试的价值。

如果您实施了这一点,然后下周有少数测试失败,这是否表明

  • 您的测试运行缓慢?
  • 密码坏了?
  • 上述两者同时进行?

我建议最好从构建过程中收集 MI 并对其进行监控,以发现构建缓慢的测试,但让红色表示“功能损坏”而不是“功能损坏和/或测试缓慢”。

于 2011-07-01T13:29:44.097 回答