2013-04-25 25 views
5

Trong NUnit, bạn có thể kiểm tra hiện tại với NUnit.Framework.TestContext.CurrentContext. Khi tôi chạy thử nghiệm trên máy địa phương của tôi, điều này là chính xác dân cư trong quá trình thử nghiệm. Tuy nhiên, khi được đẩy đến một máy chủ dev chạy TeamCity, cấu trúc dữ liệu này có một số vấn đề gây ra lỗi. Các lỗi này xảy ra khi truy cập context.Test.FullName, context.Test.Namecontext.Result. Ví dụ, với đoạn mã sau:Làm thế nào để có được TestContext hiện tại trong TeamCity NUnit runner

var name = NUnit.Framework.TestContext.CurrentContext.Test.Name; 

ngoại lệ này xảy ra, nhưng chỉ khi TeamCity đang chạy các bài kiểm tra:

TearDown method failed. TearDown : System.NullReferenceException : Object reference not set to an instance of an object. 
--TearDown 
    at NUnit.Framework.TestContext.TestAdapter.get_Name() 

là TeamCity không Populating TestContext hoặc là có một cách chính xác để có được điều này dữ liệu?

Trả lời

1

Dự đoán tốt nhất: điều này là không thể vì TeamCity không có cấu trúc dữ liệu TestContext. Cũng không thể, bởi vì những người định cư ở NUnit không được công khai. Để chức năng này hoạt động, NUnit có thể cần được sửa đổi.

Để vượt qua giới hạn này, chúng tôi đã viết trình thử nghiệm của riêng mình với cấu trúc dữ liệu tùy chỉnh để cho biết lỗi kiểm tra (đó là mục đích chính của việc này).

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