Tại thời điểm viết câu trả lời này, phiên bản NUnit mới nhất là v3.5 và xUnit.net là v2.1.
Cả hai khung đều tuyệt vời và cả hai đều hỗ trợ chạy thử nghiệm song song (mặc dù theo một cách khác). NUnit đã xuất hiện từ năm 2002, được sử dụng rộng rãi, được ghi chép đầy đủ và có một cộng đồng lớn, trong khi xUnit.net hiện đại hơn, TDD chặt chẽ hơn, có thể mở rộng hơn và cũng là xu hướng phát triển .NET Core. Nó cũng được ghi lại.
Ngoài ra, sự khác biệt chính mà tôi nhận thấy là cách xUnit.net chạy các phương pháp thử nghiệm. Vì vậy, trong NUnit , chúng tôi có một lớp thử nghiệm và một tập hợp các phương pháp thử nghiệm trong đó. NUnit tạo một thể hiện mới của lớp thử nghiệm và sau đó chạy tất cả các phương thức kiểm tra từ cùng một thể hiện. Trong khi xUnit.net tạo một phiên bản mới của lớp thử nghiệm cho từng phương thức thử nghiệm. . Do đó, người ta không thể sử dụng các trường hoặc thuộc tính để chia sẻ dữ liệu giữa các phương pháp thử nghiệm là một phương pháp không tốt, vì các phương pháp thử nghiệm của chúng tôi sẽ phụ thuộc vào nhau và điều này không được chấp nhận trong TDD. Vì vậy, nếu bạn sử dụng xunit.net, bạn có thể chắc chắn rằng các phương pháp kiểm tra của bạn hoàn toàn bị cô lập.
Tuy nhiên, nếu bạn sẵn sàng chia sẻ một số dữ liệu giữa các phương pháp thử nghiệm của mình, xUnit sẽ cho phép bạn làm như vậy. Do đó, theo mặc định, tất cả các phương pháp thử nghiệm đều được cách ly hoàn toàn, nhưng bạn có thể cố ý phá vỡ sự cô lập này trong các trường hợp cụ thể. Tôi thích thái độ này, đó là lý do tại sao tôi thích nó hơn.