2009-08-13 35 views
8

Có thể xác định bộ lọc tùy chỉnh để NUnit chỉ chạy thử nghiệm cụ thể không? Tôi có nhiều bài kiểm tra Nunit của tôi được đánh dấu bằng thuộc tính tùy chỉnh "BugId". Có thể viết một bộ lọc để tôi có thể vượt qua trong một số và chỉ chạy các bài kiểm tra với thuộc tính và số đó? Nếu có hiển thị mockup hoặc mã thực.Bộ lọc tùy chỉnh trong NUnit có thể không?

Trả lời

3

Bắt đầu với NUnit 2.4.6, các thuộc tính NUnit không được niêm phong và các lớp con sẽ được công nhận là lớp cơ sở của chúng. Như vậy:

public class BugId : TestAttribute 
{ 
    public BugId(int bugNumber) : base("Test for Bug #" + bugNumber) { } 
} 

[BugId(1)] 
public void Test() {} 

có thể được gọi trên dòng lệnh như thế này:

nunit-console/bao gồm = "Thử nghiệm cho Bug # 1"

5

Bộ lọc có cần sử dụng thuộc tính tùy chỉnh của bạn hay bạn có thể sử dụng NUnit Category không? Something như

[Test] 
[Category("BugId-12234")] 
public void Test() 
{ 
    .... 
} 

... và sau đó sử dụng /include=STR cờ:

nunit-console /include=BugId-12234 ... 

? Tôi khuyên bạn nên phân loại Danh mục để tạo thuộc tính tùy chỉnh của bạn, nhưng tôi không nghĩ rằng cho phép bạn thêm tham số có thể chuyển đổi vào thuộc tính của bạn ...

+0

Sau khi xem xét các mã NUnit, tôi nghĩ rằng đây là tốt nhất chúng ta có thể làm mà không cần sửa đổi NUnit. Cảm ơn câu trả lời của bạn. –

0

Tôi nghĩ mình đã có một giải pháp thanh lịch cho điều này, nhưng than ôi, không hoạt động như tôi mong đợi. Tôi đã hy vọng (và có thể bạn có thể với nhiều nỗ lực hơn) để lấy được từ lớp IgnoreAttribute. Tôi nghĩ điều này sẽ hoạt động:

[Test, BugId("411")] 
public void TestMethod() 
{ 
    // your test 
} 

public class BugIdAttribute : IgnoreAttribute 
{ 
    private string id; 

    public BugIdAttribute(string id) : base("Ignored because it is bug #" + id) 
    { 
     this.id = id; 
    } 
} 

Nhưng có vẻ như còn nhiều hơn thế. Xin lỗi vì đã đăng một câu trả lời không thực sự là một câu trả lời, nhưng tôi nghĩ đó là một bước đệm tốt cho ai đó biết nhiều hơn về nội bộ của nữ tu hơn bản thân tôi.

+0

Tôi không muốn bỏ qua bài kiểm tra. Tôi muốn có thể thấy rằng lỗi đã được sửa và chạy tất cả các thử nghiệm liên quan với lỗi đó. –

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