2012-06-13 33 views
6

Có cách nào để lấy các danh mục kiểm tra đã chọn một cách có lập trình trong khi thực hiện kiểm tra không? một cái gì đó trong các dòng của TestContext.Properties ["_ SELECTCATEGORIES"]Nhận nUnit các danh mục được chọn theo chương trình

về cơ bản tôi đã có các trường hợp kiểm tra tải dữ liệu thử nghiệm từ một db và như tôi đã có rất nhiều thử nghiệm dự án mất nhiều thời gian để tải. Im cố gắng tìm một cách để có testCaseSources trở về không có gì nếu hạng mục không được chọn

+0

ý của bạn là gì với danh mục thử nghiệm? –

+0

Tôi có nghĩa là các danh mục được chọn trong nunit gui hoặc giao diện điều khiển trong các danh mục được bao gồm để thực hiện – z0c

Trả lời

2

CẬP NHẬT

Dường như không có bất kỳ phương pháp đơn giản để xác định hoặc tải chọn loại trong một hội đồng kiểm tra NUnit trong vòng các NUnit Khung bản thân ..

Sử dụng phản chiếu, bạn có lẽ có thể quét các tài sản Categories trong các lớp học được trang trí với TestAttribute hay TestFixtureAttribute. Bằng cách kết hợp các danh mục này với (các) mục bạn muốn tải, bạn có thể lọc ra các thử nghiệm nào cần tải trước khi tải.

Và sau đó là TestContext.Test.Properties chính _CATEGORIES (có sẵn trong NUnit 2.5.7 và sau):

[Test] 
[Category("Hello")] 
public void TestCategory() 
{ 
    Assert.IsTrue(((ArrayList)TestContext.CurrentContext.Test.Properties["_CATEGORIES"]).Contains("Hello")); 
} 

Một số chi tiết để đọc trên lớp TestContext thể được tìm thấy here. Tất nhiên, để giải quyết vấn đề với cách tiếp cận này sẽ yêu cầu bạn tải toàn bộ hội đồng kiểm tra và lặp lại tất cả các trường hợp thử nghiệm trước đó, điều này rõ ràng là không mong muốn trong kịch bản của bạn.

+0

Không hoàn toàn. ["_CATEGORIES"] trả về các loại trang trí bài kiểm tra, những gì tôi cần là các loại được chọn trong nunit gui hoặc console để thực thi – z0c

+0

@ z0c Có lẽ không phải là một bản cập nhật rất đáng khích lệ, nhưng ít nhất tôi đã cố gắng để thích ứng với câu trả lời của tôi trả lời câu hỏi của bạn. –

+0

trong liên kết "ở đây" trong câu trả lời này, tôi nhận được thông báo "Tài khoản bị tạm ngưng". Vui lòng cung cấp liên kết mới. – funkymushroom

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