2010-08-13 28 views
6

Có cách nào tốt đẹp và đơn giản để NUnit giết một thử nghiệm mất nhiều hơn một khoảng thời gian nhất định không?NUnit: hủy bỏ thử nghiệm nếu phải mất quá lâu

Lý tưởng nhất là nó sẽ không chỉ giết miền ứng dụng mà thử nghiệm đang chạy, mà còn bất kỳ quá trình con nào bắt đầu thử nghiệm được bắt đầu.

Trả lời

7

Nếu bạn đang sử dụng NUnit 2.5, bạn có thể sử dụng thuộc tính Timeout để không thực hiện thử nghiệm sau khoảng thời gian được chỉ định. Rất tiếc, bạn sẽ cần phải tự dọn sạch tất cả tài nguyên - ví dụ: trong phương pháp TearDown, hãy kiểm tra xem các quy trình có đang chạy hay không và xóa chúng…

0

Điều này giống như một mùi thử nghiệm. Theo ý kiến ​​của tôi với thiết lập thời gian chờ bạn cố gắng để chống lại một triệu chứng. Các bài kiểm tra đơn vị nên nhanh chóng và có thể tái sản xuất (cả về tốc độ).

Tại sao thử nghiệm lại mất quá nhiều thời gian? Nó thậm chí là ngẫu nhiên "dùng lâu" (đôi khi thực hiện nhanh, đôi khi không)?

+0

Ông cho biết quy trình con. Tôi đoán một quá trình con không thành công theo cách mà anh ta không thể dễ dàng phát hiện. – Rup

+1

Hiện tại, nó luôn mất một thời gian. Cho đến khi nó được cố định (sẽ mất thời gian), tôi có thể vô hiệu hóa nó hoặc làm cho nó thất bại về thời gian chờ. –

+2

Vấn đề là, thử nghiệm FAIL nếu mất quá nhiều thời gian - nó giữ cho các bài kiểm tra đơn vị chạy nhanh - Điều gì sẽ xảy ra nếu một số mã ở đâu đó có vòng lặp vô hạn - bất kể mọi thứ nhanh như thế nào, bạn muốn mã đó thất bại nhanh chóng và không treo máy chủ xây dựng ... – BrainSlugs83

Các vấn đề liên quan