【问题标题】:Making Nose fail slow tests使鼻子无法通过慢速测试
【发布时间】:2011-07-01 13:20:13
【问题描述】:

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

【问题讨论】:

    标签: python unit-testing nose


    【解决方案1】:

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

    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)
    

    【讨论】:

      【解决方案2】:

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

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

      如果你实施了这个,然后下周有少数测试失败,这是否是一个指标

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

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

      【讨论】:

      • 感谢您的回答!那讲得通。对生成测试用例运行时间报告有何建议?
      • @ThomasParslow 我一直在使用pinocchio's stopwatch feature 来测量测试时间。它会生成一个泡菜,然后您可以通过一个简单的 python 脚本对其进行处理。
      • 或者,将响应时间视为函数契约的一部分,当函数违反该契约时,测试失败是完全合理的。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多