2011-11-03 38 views
10

Tôi có một dự án NUnit tạo Ứng dụng Bảng điều khiển để chạy thử nghiệm. Điểm vào trông như thế này:chỉ định kiểm tra NUnit để chạy

class Program 
{ 
    [STAThread] 
    static void Main(string[] args) 
    { 
     string[] my_args = { Assembly.GetExecutingAssembly().Location }; 

     int returnCode = NUnit.ConsoleRunner.Runner.Main(my_args); 

     if (returnCode != 0) 
      Console.Beep(); 

    } 
} 

Những gì tôi có thể vượt qua trong khi một cuộc tranh cãi nếu tôi muốn chạy một bài kiểm tra này CHỈ:

[TestFixture] 
public class EmailNotificationTest 
{ 
    [Test] 
    public void MailerDefaultTest() 
    { 
     Assert.IsTrue(false); 
    } 
} 

Rõ ràng này được hỗ trợ, và cũng giống như rõ ràng tôi có không có ý tưởng làm thế nào để làm điều đó.

CẬP NHẬT

Dường như với v3 +, điều này là có thể với các tùy chọn --test, mỗi the documentation.

+0

Tôi chưa sử dụng ConsoleRunner, nhưng nó có thể tôn trọng các thuộc tính '[Rõ ràng]' và '[Danh mục] '. – jrummell

+0

Đối với những người đang tìm kiếm 'nunit3-console.exe', hãy xem http://stackoverflow.com/questions/37297838/run-individual-test-from-nunit3-console-exe – KCD

Trả lời

10

Bạn có thể đánh dấu thử nghiệm của bạn với [Category("RunOnlyThis")] thuộc tính, và sau đó nói với NUnit để chạy thử nghiệm chỉ phù hợp với loại cụ thể này:

/include:RunOnlyThis 

là thuộc tính bạn cần phải thêm để an ủi đối số Á hậu. Thêm here.

+0

Điều này là không cần thiết từ GUI, mặc dù ... Tôi hy vọng sẽ có thể được cụ thể mà không cần thay đổi mã để tôi có thể bản địa hóa một thử nghiệm cụ thể như tôi có thể làm từ GUI. Điều này là không thể? –

+0

@JeremyHolovacs: NUnit doc vẫn im lặng về điều đó, tôi cho rằng giao diện điều khiển Á hậu không cho phép nó sau đó. Có điều đó trong tâm trí, tôi muốn đi kèm với trình gỡ lỗi - nó khá dễ dàng và bạn có thể tìm thấy làm thế nào để làm điều đó trên SO ([ví dụ ở đây] (http://stackoverflow.com/questions/759854/how-do-i -run-nunit-in-debug-mode-from-visual-studio)). –

+1

Tôi đã kết thúc bằng cách sử dụng '/ fixture: EmailNotificationTest' và đặt bài kiểm tra của tôi vào lớp riêng của mình. Gắn trình gỡ rối mỗi khi tôi chỉnh sửa một số thứ gây phiền nhiễu ... nhưng câu trả lời dường như là "bạn không thể làm điều đó". Què. –

2

Một ứng dụng đi kèm với NUnit và ứng dụng có thể khởi chạy thử nghiệm bạn muốn. Nó thực sự hữu ích, và bạn không phải viết mã để chạy thử nghiệm.

+0

Tôi thực sự muốn tự động đính kèm nó vào trình gỡ lỗi, mà ứng dụng không cho phép tôi làm (hoặc ít nhất, không dễ dàng). Tôi có một vài bài kiểm tra không thành công và tôi đang cố gắng xem tại sao. –

4

Như @Toto đã nói, sử dụng NUnit Gui, bạn có thể chọn và chọn.

enter image description here

+0

Có đây là cách tôi biết điều đó là có thể, nhưng đó không phải là những gì tôi đang cố gắng làm. Trong trường hợp này, những thay đổi mã mới nhất của tôi đã phá vỡ một số xét nghiệm đơn vị, và tôi đang cố gắng tìm nguyên nhân gốc rễ. Nếu tôi chạy dự án NUnit như một ứng dụng giao diện điều khiển từ studio trực quan, tôi có thể đặt các điểm ngắt và theo dõi mã, đó là những gì tôi đang cố gắng làm. –

+1

Bạn có thể đính kèm studio trực quan để nunit, breakpioints của bạn sẽ đạt được. Tôi làm điều đó thường xuyên. Ngoài ra còn có http://www.testdriven.net/ cung cấp chức năng rightclick trong studio trực quan để khởi chạy thử nghiệm đơn vị với trình gỡ lỗi studio trực quan (thực sự hữu ích). – Toto

9

Phiên bản mới nhất (NUnit 3) cho phép gỡ lỗi kiểm tra và cũng để chỉ định (các) thử nghiệm để thực thi.

gỡ lỗi

Tùy chọn --debug ra mắt gỡ lỗi để kiểm tra gỡ lỗi, ví dụ:

nunit3-console.exe "C:\path\to\the\tests.dll" --debug 

Lọc kiểm tra

Bây giờ bạn có một số cách khác nhau để lựa chọn thử nghiệm (s) để chạy. Tùy chọn đầu tiên là --test=NAMES. Kết hợp tùy chọn này và --debug bạn có thể dễ dàng gỡ lỗi chỉ có một bài kiểm tra, ví dụ:

nunit3-console.exe "C:\path\to\the\tests.dll" --debug --test="EmailNotificationTest.MailerDeSecondTest" 

Đừng quên về namespace nếu lớp có nó.

Sử dụng --testlist=PATH tùy chọn mà bạn có thể chạy tất cả các xét nghiệm xác định trong một tập tin, ví dụ:

nunit3-console.exe "C:\path\to\the\tests.dll" --debug --testlist="testnames.txt" 

Ngoài ra còn có tùy chọn --where=EXPRESSION cho thấy những gì các bài kiểm tra sẽ được chạy. Tùy chọn này nhằm mục đích mở rộng hoặc thay thế các tùy chọn --test, --include--exclude trước đó. Vui lòng kiểm tra số official documentation nếu bạn muốn biết thêm về tùy chọn này.

+0

Các tài liệu chính thức đáng buồn đã không chỉ định những gì 'NAMES' thực sự là. Có vẻ như đó là tên lớp đầy đủ? – gideon

+0

cho --testlist, làm thế nào để bạn chỉ định một danh sách kiểm tra được tìm thấy trong DLL? tôi tiếp tục không thể xác định được lỗi tệp. Chúng tôi lưu trữ các tệp thử nghiệm này ở đâu? – Tree55Topz

3

Bạn có thể sử dụng công tắc /chạy của bảng điều khiển NUnit để chỉ định kiểm tra mà bạn muốn chạy.

Như thế này:

/run:namespace.classname.functionName 

Ví dụ:

nunit-console.exe "C:\UnitTests.dll" /run:UnitTests.EmailNotificationTest.MailerDefaultTest 
Các vấn đề liên quan