2011-11-23 31 views
0

我有一些时间敏感的单元测试:一个动作是定时的,如果它需要很长时间才会触发错误。当单独运行时,这些测试会通过,但是当我的模块递归运行nosetest时,它们通常会失败。我运行并发测试,这可能是计时关闭的一个原因。有什么方法可以表明我希望这个测试不中断地运行吗?Python鼻子测试中的计时问题

回答

1

我认为你的问题取决于你如何实现时机。我个人会采用的解决方案是设置一个控制测试行为的环境变量。候选人可以是:

  • if WITH_TIMING == False [关闭定时完全]
  • TIME_STRETCH_FACTOR = ... [应用时间伸缩在并行测试的情况下,乘数运行,这样,例如为5的时间限制将变得7.5如果TIME_STRETCH_FACTOR将1.5]

如果这不是一个选项,可能丑陋解决方法是嘲笑time.time()功能,使得它返回一个恒定值的,如果你使用time.time()这只会工作在你的测试当然直接] ...

HTH