it-swarm-vi.com

Khung kiểm tra đơn vị tốt nhất cho .NET là gì và tại sao?

Dường như với tôi rằng mọi người đều sử dụng NUnit mà không cần xem xét các tùy chọn khác. Tôi nghĩ rằng điều này là do:

  • Mọi người đều quen thuộc với nó rồi nên họ sẽ không phải học API mới.
  • Nó đã được thiết lập với máy chủ tích hợp liên tục của họ để hoạt động với NUnit.

Tôi có sai về điều này?

Tôi đã quyết định sử dụng xUnit cho một trong những dự án của riêng tôi gần đây và tôi thích nó! Nó có ý nghĩa hơn đối với tôi và về mặt khái niệm nó có vẻ như là một bước tiến rõ ràng từ NUnit.

Tôi muốn nghe ý kiến ​​về khung nào thực sự tốt nhất - không tính đến việc phải học nó hoặc cấu hình lại thử nghiệm tự động của bạn.

26
Nobody

MSTest

Cá nhân tôi sử dụng MSTest. NUnit thực sự rất hay, nhưng trong VS2010, MSTest đã được tích hợp hoàn toàn vào IDE và có các mẫu dự án đầy đủ cho nó. Đối với .NET, nếu bạn đang sử dụng 2010, thì tôi nghĩ MSTest là cách để đi (MSTest trong VS2008 tôi không nghĩ là ngang bằng) chỉ đơn giản là cho phạm vi bảo hiểm mã, người chạy thử nghiệm và các công cụ khác có sẵn cho bạn ra khỏi hộp. (Nếu bạn sử dụng CodeRush hoặc R #, thì họ có các công cụ/công cụ kiểm tra thực sự tuyệt vời cho các khung kiểm tra khác)

Chỉnh sửa: Tôi đã chuyển sang XUnit. : D

15
Ryan Hayes

Tôi đã bắt đầu sử dụng Gallio/MbUnit vài năm trước. Và các tính năng và đá quý mà nó cung cấp rất mạnh mẽ mà tôi chưa bao giờ hối tiếc về lựa chọn của mình. Trên thực tế, tôi hiện là một phần của nhóm phát triển dự án Gallio OSS; vì vậy tôi có thể đóng góp để làm cho nó thậm chí còn tuyệt vời hơn.

  • MbUnit có nhiều tính năng mạnh mẽ giúp cuộc sống nhà phát triển của tôi dễ dàng hơn (trình xác minh hợp đồng, nhà máy thử nghiệm, so sánh công bằng cấu trúc, kiểm tra kết hợp, khung tạo dữ liệu, khác biệt văn bản , xác nhận xml, điểm mở rộng, v.v.)
  • Gallio cung cấp một nền tảng nhất quán để chạy tất cả các thử nghiệm của tôi với công cụ báo cáo Nice. Tôi cũng thích thực tế là tôi có thể tích hợp các thử nghiệm từ các dự án OSS khác không sử dụng MbUnit và chỉ chạy chúng theo. Tích hợp liền mạch trong nhiều công cụ của bên thứ 3 cũng thuận tiện (R #, PoSh, dotCover, v.v.) Và khả năng mở rộng của cơ sở hạ tầng thật đáng kinh ngạc (ví dụ: tôi vừa hoàn thành việc viết bộ điều hợp thử nghiệm cho khung thử nghiệm C++ không được quản lý riêng Nó sẽ là một phần của phiên bản tương lai sớm)

wiki chắc chắn là điểm khởi đầu tốt để khám phá Gallio và MbUnit v3. Nó bỏ lỡ một số chương nhưng nó yên tĩnh hữu ích.

14
Yann Trevin

Chọn một và sử dụng nó có lẽ là bước quan trọng nhất ở đây.

Cá nhân tôi sẽ chọn NUnit vì một vài lý do. Đầu tiên và quan trọng nhất là hỗ trợ công cụ. Có một bổ trợ miễn phí cho Visual Studio 201 và tất cả các plugin của bên thứ 3 chính đều hỗ trợ nó. Mỗi hệ thống xây dựng, tiện ích bảo hiểm thử nghiệm và máy chủ CI đều hỗ trợ nó. Trong nhiều trường hợp không có plugin. Ở cấp độ mã, nó có thể xử lý bất kỳ kịch bản nào tại thời điểm này - kiểm tra theo hướng dữ liệu, kế thừa, các lớp kiểm tra trừu tượng, các lớp kiểm tra chung, thiết lập, phá bỏ, v.v. Trong một chừng mực nào đó, chúng ta có xUnit = vì NUnit có quá nhiều tính năng phong phú và mạnh mẽ.

Ngoài NUnit, tôi nghĩ bạn có thể đưa ra một lập luận khá hay cho MBUnit + Gallio như Yann đã đề cập - đó là một khuôn khổ rất vững chắc. Một trong những điều bạn nên tránh nếu có thể sẽ là MSTest, trong đó có một vài sai sót nghiêm trọng IMHO. Lỗ hổng là một số hạn chế đối với các lớp kiểm tra của bạn, chẳng hạn như không có sự kế thừa và phụ thuộc vào SKU phòng thu trực quan chuyên nghiệp hoặc tốt hơn. Bao gồm yêu cầu phòng thu trực quan được cài đặt trên máy chủ xây dựng để chạy thử nghiệm.

9
Wyatt Barnett

Một lý do là NUNIT trở thành tiêu chuẩn công nghiệp hơn xUnit. Nhưng cá nhân, tôi yêu xunit.

0
Cheung