2011-07-01 54 views
8

我想讓我的測試失敗,如果它們花費的時間超過一定的時間來運行(比如說500ms),因爲它會在稍微慢一點的測試進行的時候吮吸,並且突然你每次都有這麼大的延遲你運行測試套件。是否有任何插件或鼻子已經做到這一點?製作鼻子失敗緩慢的測試

回答

7

我恭敬地建議改變「破碎」的含義是一個壞主意。

失敗/「紅色」測試的含義絕不應該是「此功能已損壞」之外的任何其他內容。做任何事情都有可能會稀釋測試的價值。

如果實現這一點,然後在下週的測試了一把失敗,這將是一個指標,

  • 你的測試運行速度很慢?
  • 代碼被破壞了嗎?
  • 以上兩者同時?

我建議從構建過程中收集MI並監視它以便發現構建的緩慢測試會更好,但讓紅色代表「破壞的功能」,而不是「破壞的功能和/或慢速測試」。 「

+1

謝謝您的回答!這就說得通了。任何關於生成測試用例運行時間報告的建議? –

+0

@ThomasParslow我一直在使用[pinocchio的秒錶功能](http://darcs.idyll.org/~t/projects/pinocchio/doc/#id12)來測量測試時間。它生成一個pickle,然後你可以通過一個簡單的python腳本進行處理。 –

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) 
+1

這將是很好,如果它的工作 – Jack