2008-12-20 39 views
4

我正在使用NUnit(2.4.6),並且我的構建/測試之夜是通過Team City 4完成的。我已經聯繫了團隊城市,他們已經告訴我他們無法處理這個問題。所以,我在這裏。如何使UnitTest在一段時間後自動失效?

我想要設置我的測試,像往常一樣進行測試,但在這種情況下,他們會掛斷...出於未知原因(這可能會發生......)...我不希望他們繼續但失敗。這是必要的,因爲有時候我注意到我的建造之夜已經完成,當測試到達時,一些測試掛了整晚。

你會怎麼做?

請記住,我知道Nunit 2.5(Beta)有MaxTime attribute,但我將不得不升級到800單元以上的測試...我想爲整個測試做些事情,而不必升級到測試版版本尚未。

+0

你的意思是Team City 4.1嗎? 1.4很老。 – 2008-12-21 01:01:45

+0

是的團隊城市4.1 – 2008-12-23 01:53:41

回答

2

TC對每個構建配置都有一個執行超時,如果超過該構建,構建失敗。 這是在一般設置「失敗生成,如果它運行的時間超過」。 這不是每單元測試,但我認爲它足夠適合您的場景。

0

我會根據你的建議使用MaxTime,這是做這件事的標準方式 - 爲什麼還要花費一些新的東西來避免更新測試呢?

如果問題只是更新測試所花費的時間,我個人可能會敲一些快速和骯髒的程序來解析源文件並添加屬性。 有可能更好的方式來更新代碼(生成器或其他),但這將工作。

除非有令人信服的理由不使用NUnit 2.5?

1

如果您對升級到2.5版本無法設置,則NUnit示例中會有一個MaxTimeDecorator,如果測試時間超過指定時間,測試將失敗。當測試掛起時,這顯然不會起作用,但是您可以修改樣本,以便在自己的線程中產生測試,並每隔一段時間回撥一次,以查看是否超出了時間限制。然而這會很快變得相當複雜。

相關問題