Bất cứ khi nào kiểm tra đơn vị không thành công do StackOverflowException
quá trình kiểm tra đơn vị thoát ngay lập tức - cách duy nhất để tìm hiểu điều gì đã xảy ra (tôi biết) là gỡ lỗi bãi chứa sự cố của quá trình kiểm tra đơn vị thu được bằng cách làm theo các bước tìm thấy ở đâyGỡ lỗi đơn vị kiểm tra thất bại do một ngoại lệ StackOverflow
cách dễ nhất để nhận được tên của bài kiểm tra đơn vị đã được chạy ở thời gian mà StackOverflowException
bị ném là gì? Ngay cả khi gỡ lỗi kiểm tra đơn vị tôi đang đấu tranh để tìm tên của bài kiểm tra đơn vị hiện tại như nó ở dưới cùng của ngăn xếp và Visual Studio sẽ không hiển thị toàn bộ ngăn xếp trong cửa sổ gỡ lỗi vì nó quá lớn.
Có cách nào để tìm ra thử nghiệm đơn vị nào không thành công mà không thu thập và gỡ lỗi các bãi rác?
Tôi không chắc chắn về việc cắt xén ngoại lệ là gì. Bạn có thể thử tạo stacktrace của riêng bạn với 'System.Diagnostics.StackTrace (true)' mới trong đồng hồ và/hoặc cửa sổ trung gian không? Có lẽ điều này sẽ cung cấp cho bạn một dấu vết đầy đủ. – Caramiriel
@Caramiriel Chạy trong khi gỡ lỗi tương tác cho 'Không thể đánh giá biểu thức vì luồng hiện tại đang ở trạng thái tràn ngăn xếp.', bạn không thể chạy biểu thức ngay lập tức khi gỡ lỗi kết xuất đổ vỡ vì quá trình này không thực sự chạy tại điểm đó. Toàn bộ dấu vết ngăn xếp không được hiển thị vì khối lượng lớn của nó. – Justin
@Justin: Nếu kiến trúc studio trực quan của bạn (ví dụ x86) khớp với ứng dụng của bạn, thì bạn cũng có thể tải SOS và kết xuất stacktrace bằng cách gõ '! Clrstack' vào cửa sổ ngay lập tức. Dường như làm việc cho tôi. ('0028ed6c 00340147 ConsoleApplication45.Program.Rec() 0028edac 003400fb ConsoleApplication45.Program.Main (System.String [])') – Caramiriel