it-swarm-tr.com

.NET için en iyi birim test çerçevesi nedir ve neden?

Bana öyle geliyor ki herkes diğer seçenekleri düşünmeden NUnit kullanıyor. Bence bunun nedeni:

  • Herkes zaten bunu biliyor, bu yüzden yeni bir API öğrenmek zorunda kalmayacaklar.
  • Zaten NUnit ile çalışmak için sürekli entegrasyon sunucuları ile kurulmuştur.

Bu konuda yanlış mıyım?

Son zamanlarda kendi projelerimden birinde xUnit kullanmaya karar verdim ve çok seviyorum! Benim için çok daha mantıklı ve kavramsal olarak NUnit'ten ileriye doğru kesin bir adım gibi görünüyor.

Hangi çerçevenin aslında en iyi olduğuna dair fikirleri duymak isterim - bunu öğrenmek veya otomatik testinizi yeniden yapılandırmak zorunda kalmamak.

26
Nobody

MSTest

Ben şahsen MSTest kullanıyorum. NUnit gerçekten güzel, ama VS2010'da, MSTest zaten IDE ile tam olarak entegre edilmiştir ve bunun için tam proje şablonları vardır. .NET için, 2010 kullanıyorsanız, o zaman MSTest sadece kod kapsamı, test çalıştırıcısı ve kutunun dışında kullanabileceğiniz diğer araçlar için (VS2008'de MSTest'in eşit olduğunu düşünmüyorum) yoludur. (CodeRush veya R # kullanıyorsanız, o zaman diğer test çerçeveleri için gerçekten harika test koşucuları/araçları var)

Düzenleme: O zamandan beri XUnit'e geçtim. : D

15
Ryan Hayes

Birkaç yıl önce Gallio/MbUnit kullanmaya başladım. Ve sağladığı özellikler ve taşlar o kadar güçlü ki seçimimden hiç pişman olmadım. Aslında şimdi Gallio OSS projesinin geliştirme ekibinin bir parçasıyım; bu yüzden daha da harika hale getirmeye katkıda bulunabilirim.

  • MbUnit geliştirici hayatımı kolaylaştıran birçok güçlü özelliğe sahiptir (sözleşme doğrulayıcılar, test fabrikaları, yapısal eşitlik karşılaştırıcısı, kombinatoryal testler, veri oluşturma çerçevesi, metin farklılığı , xml iddiaları, uzantı noktaları vb.)
  • Gallio tüm testlerimi Nice raporlama araçlarıyla çalıştırmak için tutarlı bir platform sağlar. Ayrıca MbUnit kullanmayan ve sadece bunları yürüten diğer OSS projelerinden testleri entegre edebileceğimden de çok hoşlanıyorum. Birçok 3. taraf araç içinde sorunsuz entegrasyon da uygundur (R #, PoSh, dotCover, vb.) Ve altyapının genişletilebilirliği inanılmaz (örneğin, yerel yönetilmeyen bir C++ test çerçevesi için bir test adaptörü yazmayı bitirdim Yakında gelecek bir sürümün parçası olacak)

wiki kesinlikle Gallio ve MbUnit v3'ü keşfetmek için iyi bir başlangıç ​​noktasıdır. Eşik bazı bölümleri özlüyor ama sessiz zaten yararlı.

14
Yann Trevin

Birini seçmek ve kullanmak belki de buradaki en önemli adımdır.

Şahsen ben birkaç nedenden dolayı NUnit seçerdim. İlk ve en önemlisi takım desteği. Bir Visual Studio 2010 için ücretsiz eklenti vardır ve tüm büyük 3. taraf eklentileri bunu destekler. Her bir derleme sistemi, test kapsamı yardımcı programı ve CI sunucusu bunu destekler. Birçok durumda eklenti olmadan. Kod düzeyinde, bu noktada hemen hemen her senaryoyu işleyebilir - veriye dayalı testler, kalıtım, soyut test sınıfları, genel test sınıfları, kurulum, yıkma vb. Bir dereceye kadar xUnit = çünkü NUnit çok zengin ve güçlü özelliklere sahip.

NUnit'in ötesinde, Yann'ın belirttiği gibi MBUnit + Gallio için oldukça iyi bir argüman yapabileceğinizi düşünüyorum - bu çok sağlam bir çerçeve. Mümkünse kaçınmanız gereken, birkaç ölümcül kusur IMHO'ya sahip olan MSTest olacaktır. Kusurlar, kalıtım yok ve profesyonel veya daha iyi görsel stüdyo SKU'larına bağımlılık gibi test sınıflarınızdaki bazı kısıtlamalardır. Testleri çalıştırmak için derleme sunucusuna visual studio yüklenmesini gerektirir.

9
Wyatt Barnett

Bunun bir nedeni, NUNIT'in xUnit'ten daha endüstri standardı haline gelmesidir. Ama şahsen, xunit'i seviyorum.

0
Cheung