2010-08-13 14 views
6

NUnit'i belirli bir süreden daha uzun süren bir testi sonlandırmak için güzel ve basit bir yol var mı?NUnit: çok uzun sürerse testi iptal edin

İdeal olarak, yalnızca testin yürütüldüğü uygulama alanını öldürmekle kalmayacak, aynı zamanda test başlatan herhangi bir çocuk da işlenecektir.

cevap

7

NUnit 2.5 kullanıyorsanız, belirtilen süreden sonra sınamada başarısız olmak için Timeout özniteliğini kullanabilirsiniz. Ne yazık ki tüm kaynakları kendiniz temizlemeniz gerekecek - örn. TearDown yönteminde, işlemlerin çalışıp çalışmadığını kontrol edin ve onları öldürün.

0

Bu, bir test kokusuna benziyor. Zaman aşımı ile ilgili görüşüme göre bir semptomla savaşmaya çalışıyorsunuz. Birim testleri hızlı ve tekrarlanabilir olmalıdır (ayrıca hızda).

Test neden bu kadar uzun sürüyor? Rastgele “uzun sürüyor” (bazen hızlı, bazen de değil) yürütüyor mu?

+0

Çocuk süreçlerini söyledi. Çocuk süreçlerinin kolayca tespit edemediği bir şekilde başarısız olduğunu tahmin ediyorum. – Rup

+1

Şu anda her zaman bir süre alır. Sabitlenene kadar (ki bu zaman alacak), ya devre dışı bırakabilirim ya da zaman aşımından başarısız olurum. –

+2

Önemli olan, testin çok uzun sürmesi durumunda FAILs olması - ünite testlerinin hızlı bir şekilde çalışmasını sağlar - Ne olursa olsun, bazı kodlar sonsuz bir döngüye sahipse - her şeyin ne kadar hızlı olduğuna bakmaksızın, bu kodun hızlı bir şekilde başarısız olmasını ve yapı sunucusuna asılmam ... – BrainSlugs83

İlgili konular