Tôi đang sử dụng xUnit với nhân vật thử nghiệm ReSharper và plugin xUnitContrib resharper.Sử dụng ReSharper, làm thế nào để hiển thị đầu ra gỡ lỗi trong một thử nghiệm đơn vị chạy dài?
Khi tôi có một thử nghiệm dài hạn, tôi muốn có thể xuất một số chỉ báo tiến trình đến cửa sổ Kiểm tra Đơn vị Đầu ra.
Tôi đã thử Debug.WriteLines
, Trace.WriteLine
và Console.WriteLine
. Tất cả đều có hành vi tương tự - không có gì hiển thị trong cửa sổ đầu ra cho đến khi thử nghiệm hoàn tất.
Ví dụ:
[Fact]
public void Test()
{
Debug.WriteLine("A");
Trace.WriteLine("B");
Console.WriteLine("C");
Thread.Sleep(10000);
}
thử nghiệm cho thấy không có đầu ra cho đến khi 10 giây đã trôi qua và thử nghiệm hoàn tất. Làm thế nào để tôi có được đầu ra trên đường đi?
CẬP NHẬT 1
Tôi cũng đã cố gắng với MSTest và NUnit. NUnit là người duy nhất cho thấy đầu ra trên đường đi.
MSTest và XUnit không trả lại bất kỳ đầu ra nào cho đến khi thử nghiệm hoàn tất. Phần lạ là trong khi các XUnit và NUnit kiểm tra đầu ra trông như thế này:
A
B
C
Sản lượng MSTest trông như thế này:
C
Debug Trace:
A
B
Với tất cả các biến thể, tôi nghĩ câu trả lời là nó tùy thuộc vào việc thực hiện runner thử nghiệm để quyết định cách thức và thời điểm xuất. Có ai biết nếu nó có thể cấu hình Á hậu thử nghiệm XUnit?
UPDATE 2
Tôi nghĩ rằng đây phải là một sự thiếu hụt trong xUnitContrib. Đã đăng lên CodePlex issue tracker của họ.
Debug.WriteLine() hoạt động hoàn hảo tốt cho tôi khi tôi đang ở chế độ gỡ lỗi. Vì vậy, nếu bạn muốn đăng nhập một cách chung tôi khuyên bạn nên trả lời của brenton – derape
@derape - Không, nó không hoạt động với xunit. Không có đầu ra nào xuất hiện cho đến khi thử nghiệm hoàn tất. –
Tôi hiểu, tôi đã không chơi với XUnit - chỉ NUnit. Và NUnit đăng nhập không hoạt động dọc theo các chủ đề gỡ lỗi ... – brenton