我有一些时序敏感的单元测试:操作是定时的,如果花费的时间太长则会触发错误。当单独运行时,这些测试通过,但是当我在模块上递归运行nosetest时,它们经常会失败。我运行并发测试,这可能是时间关闭的一个原因。有没有办法表明我希望这个测试能够在没有中断的情况下运行?
答案 0 :(得分:1)
我认为您的问题取决于您实施时间的方式。我个人采用的解决方案是设置一个控制测试行为的环境变量。候选人可能是:
if WITH_TIMING == False
[完全关闭时间] TIME_STRETCH_FACTOR = ...
[在运行并发测试的情况下应用时间拉伸乘数,例如,如果TIME_STRETCH_FACTOR
为1.5,则时间限制为5将变为7.5] 如果这不是一个选项,可能的丑陋解决方法是模拟time.time()
函数,使其返回一个常量值[这只有在你使用{{1在你的测试当然直接] ...
HTH