it-swarm-eu.dev

Jaký je nejlepší rámec testování jednotek pro .NET a proč?

Zdá se mi, že každý používá NUnit, aniž by zvážil další možnosti. Myslím, že je to proto, že:

  • Každý to již zná, takže se nebude muset učit nové API.
  • Je již nastaven s jejich serverem pro kontinuální integraci pro práci s NUnit.

Mýlím se v tom?

Nedávno jsem se rozhodl použít xUnit na jednom z mých vlastních projektů a líbí se mi to! Dává mi to mnohem větší smysl a koncepčně se mi zdá, že je to určitý krok kupředu od NUnit.

Rád bych slyšel názory na to, který rámec je ve skutečnosti nejlepší - bez ohledu na to, že se to musíme naučit nebo překonfigurovat vaše automatické testování.

26
Nobody

MSTest

Osobně používám MSTest. NUnit je opravdu pěkný, ale ve VS2010 je MSTest již plně integrován do IDE a jsou k dispozici plné šablony projektu.). Pokud používáte .NET, pokud používáte rok 2010, myslím, že MSTest je způsob, jak jít (MSTest ve VS2008 nemyslím si, že je na par) jednoduše pro pokrytí kódem, testovací běžec a další nástroje, které máte k dispozici po vybalení z krabice. (Pokud používáte CodeRush nebo R #, pak mají opravdu skvělé testovací běžce/nástroje pro jiné testovací rámce)

Edit: Od té doby jsem přešel na XUnit. : D

15
Ryan Hayes

Začal jsem používat Gallio/MbUnit před několika lety. A funkce a skvosty, které poskytuje, jsou tak silné, že jsem nikdy nelitoval svého výběru. Ve skutečnosti jsem nyní součástí vývojového týmu projektu Gallio OSS; takže mohu přispět k tomu, aby byla ještě úžasnější.

  • MbUnit má mnoho výkonných funkcí, které jen usnadňují život vývojáře (ověřovače smluv, testovací továrny, porovnávač strukturální rovnosti, kombinatorické testy, rámec generování dat, textové rozdíly , xml aserce, prodlužovací body atd.)
  • Gallio poskytuje konzistentní platformu pro provádění všech mých testů pomocí nástroje pro vytváření přehledů Nice. Také mě baví skutečnost, že mohu integrovat testy z jiných projektů OSS, které nepoužívají MbUnit, a prostě je spouštět. Rovněž je pohodlná integrace do mnoha nástrojů třetích stran (R #, PoSh, dotCover atd.) A rozšiřitelnost infrastruktury je úžasná (například právě jsem dokončil psaní testovacího adaptéru pro nativní nespravovaný C++ testovací rámec . Brzy to bude součástí budoucího vydání)

wiki je určitě dobrým výchozím bodem k objevování Gallio a MbUnit v3. Parapetu chybí některé kapitoly, ale už je to ticho užitečné.

14
Yann Trevin

Sbírání jednoho a jeho používání je možná nejdůležitějším krokem zde.

Osobně bych si vybral NUnit z několika důvodů. V první řadě je podpora nástrojů. Existuje bezplatný doplněk pro Visual Studio 201 a všechny hlavní doplňky třetích stran jej podporují. Podporuje jej každý systém sestavení, nástroj pro testování pokrytí a server CI. V mnoha případech bez pluginu. Na úrovni kódu v tomto bodě zvládne téměř jakýkoli scénář - testy řízené daty, dědičnost, abstraktní testovací třídy, generické testovací třídy, nastavení, stržení atd. Do jisté míry máme xUnit = protože NUnit je příliš bohatý a mocný.

Kromě NUnitu si myslím, že byste mohli udělat docela slušný argument pro MBUnit + Gallio, jak zmínil Yann - je to velmi solidní rámec. Ten, kterému byste se měli vyhnout, pokud je to možné, by byl MSTest, který má několik fatálních nedostatků IMHO. Nedostatky jsou některými omezeními ve vašich testovacích třídách, jako je například žádná dědičnost, a závislosti na profesionálních nebo lepších SKU vizuálních studiích. Včetně požadavku na instalaci vizuálního studia na server sestavení za účelem provedení testů.

9
Wyatt Barnett

Jedním z důvodů je skutečnost, že se NUNIT stal více průmyslovým standardem než xUnit. Ale osobně miluji xunit.

0
Cheung