Tôi đang cố gắng kiểm tra đơn vị một công cụ quản lý máy chủ WCF mà tôi đã viết. Về cơ bản, engine tạo ra các phiên bản ServiceHost một cách nhanh chóng dựa trên cấu hình. Điều này cho phép chúng tôi định cấu hình lại động những dịch vụ nào khả dụng mà không cần phải gỡ bỏ tất cả và khởi động lại chúng bất cứ khi nào một dịch vụ mới được thêm vào hoặc một dịch vụ cũ bị xóa.
Tuy nhiên, tôi đã gặp khó khăn trong việc kiểm tra đơn vị công cụ quản lý máy chủ này do cách hoạt động của ServiceHost. Nếu một ServiceHost đã được tạo, mở và chưa đóng cho một điểm cuối cụ thể, thì không thể tạo một ServiceHost khác cho cùng một điểm cuối, dẫn đến một ngoại lệ. Vì thực tế là các nền tảng kiểm thử đơn vị hiện đại song song thực hiện thử nghiệm của chúng, tôi không có cách nào hiệu quả để kiểm tra đơn vị đoạn mã này.
Tôi đã sử dụng xUnit.NET, hy vọng rằng do khả năng mở rộng của nó, tôi có thể tìm ra cách để buộc nó chạy các thử nghiệm nối tiếp nhau. Tuy nhiên, tôi chưa gặp may mắn. Tôi hy vọng rằng ai đó ở đây trên SO đã gặp phải sự cố tương tự và biết cách làm cho các bài kiểm tra đơn vị chạy nối tiếp.
LƯU Ý: ServiceHost là một lớp WCF, được viết bởi Microsoft. Tôi không có khả năng thay đổi hành vi của nó. Lưu trữ mỗi điểm cuối dịch vụ chỉ một lần cũng là hành vi thích hợp ... tuy nhiên, nó không đặc biệt có lợi cho việc thử nghiệm đơn vị.
TestServer
trong docker. Vì vậy, tôi đã phải nối tiếp các bài kiểm tra tích hợp.