2012-04-11 36 views
5

Tôi đang sử dụng Cruisecontrol để xây dựng mã và thực hiện ~ 200 trường hợp kiểm tra.Xác định trường hợp kiểm tra hiện tại đang thực hiện bởi Nunit

Đôi khi bản dựng bị treo do một số trường hợp kiểm tra và tôi không thể xác định trường hợp thử nghiệm nào.

Có thể in tên của trường hợp kiểm tra hiện đang thực thi mà không sửa đổi mã trường hợp thử nghiệm hiện tại không?

Nếu có, làm cách nào?

Trả lời

1

TestContext.CurrentContext.Test.Name sẽ giúp xác định trường hợp kiểm tra hiện đang thực thi. Đặt

Console.WriteLine("Currently Executing Test Case : " + TestContext.CurrentContext.Test.Name); 

trong phương thức có thuộc tính SetUp sẽ in UT hiện đang thực thi.

4

Tôi giả sử bạn đang sử dụng NUnit để thực hiện các thử nghiệm của mình. Nếu vậy, thay vì sử dụng khối <nunit> trong cấu hình CruiseControl, hãy sử dụng tác vụ <exec>. Trong phần tử <buildArgs>, bao gồm đối số dòng lệnh/labels. Thao tác này sẽ in thông tin vào nhật ký máy chủ.

Thay vì sử dụng:

<nunit> 
    <path>C:\Program Files (x86)\NUnit 2.5.10\bin\net-2.0\nunit-console.exe</path> 
    <assemblies> 
     <assembly>C:\Projects\Personal\MyTestApp\MyTestApp.Tests\bin\Debug\MyTestApp.Tests.dll</assembly> 
    </assemblies> 
</nunit> 

Sử dụng:

<exec> 
    <executable>C:\Program Files (x86)\NUnit 2.5.10\bin\net-2.0\nunit-console.exe</executable> 
    <buildArgs>/labels C:\Projects\Personal\MyTestApp\MyTestApp.Tests\bin\Debug\MyTestApp.Tests.dll</buildArgs> 
</exec> 

Tôi biết nó không phải là lý tưởng, nhưng nó sẽ in mỗi bài kiểm tra khi nó chạy vào nhật ký. Sau đó bạn có thể sử dụng tác vụ hợp nhất để hợp nhất đầu ra tệp xml bởi nunit vào nhật ký dựng của bạn.

Hãy thử thực hiện việc này bằng ứng dụng bảng điều khiển ccnet trước, vì vậy bạn có thể xem kết quả theo thời gian thực. Nó sẽ giúp bạn thấy những gì bạn đang tìm kiếm.

Nó cũng có thể là tốt để nộp một bản vá để CruiseControl thêm dòng sau vào "dự án \ core \ nhiệm vụ \ NUnitArgument.cs" file:

line: 53   argsBuilder.AddArgument("/labels"); 

Hoặc bạn chỉ có thể thêm dòng đó, xây dựng CruiseControl và sử dụng phiên bản của riêng bạn.

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