2010-11-04 39 views
34

Có cách nào để kiểm tra nunit kết thúc và nói với nhân viên thử nghiệm rằng nó nên được coi là bỏ qua/bỏ qua, thay vì thành công hay thất bại?Lập trình bỏ qua một bài kiểm tra nunit

Động lực của tôi cho điều này là tôi có một vài bài kiểm tra không áp dụng trong một số trường hợp, nhưng điều này không thể xác định cho đến khi bài kiểm tra (hoặc có thể là lịch thi đấu) bắt đầu chạy. Rõ ràng trong những trường hợp này tôi chỉ có thể trở lại từ thử nghiệm và cho phép nó thành công, nhưng (a) điều này có vẻ sai và (b) Tôi muốn biết rằng các bài kiểm tra đã bị bỏ qua.

Tôi biết thuộc tính [Bỏ qua], nhưng điều này được biên dịch. Tôi đang tìm kiếm một thời gian chạy chương trình tương đương. Một cái gì đó như:

if (testNotApplicable) 
    throw new NUnit.Framework.IgnoreTest("Not applicable"); 

Hoặc là bỏ qua một phép thử một cách có lập trình? Nếu vậy, tôi nên làm gì?

+0

thú vị, tôi muốn xem một số nhận xét về điều này! –

Trả lời

35
Assert.Ignore(); 

là cụ thể những gì bạn đang yêu cầu, mặc dù vẫn còn có:

Assert.Inconclusive(); 
+2

Cảm ơn! Tôi không thể tin rằng tôi đã bỏ lỡ Assert.Ignore, nhưng đó chỉ là những gì tôi cần. Có vẻ như Assert.Inconclusive đã được giới thiệu ở nunit 2.5 và, vì tôi vẫn đang sử dụng 2.4.8, ít ra tôi cũng có lý do để không biết về điều đó ... –

0

Tôi gặp một TestInit(), TestInitialize phương pháp, nơi có một điều kiện như:

//This flag is the most important.False means we want to just ignore that tests 
    if (!RunFullTests) 
     Assert.Inconclusive(); 

RunFullTests là biến Boolean toàn cầu nằm trong một lớp không đổi. Nếu chúng ta đặt điều này thành false thì toàn bộ lớp kiểm tra sẽ bị bỏ qua và tất cả các bài kiểm tra trong lớp này sẽ bị bỏ qua.

Tôi sử dụng tính năng này khi có thử nghiệm tích hợp.

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