Qual è il miglior framework di test unitario per .NET e perché? [chiuso]

26

Mi sembra che tutti usino NUnit senza nemmeno considerare le altre opzioni. Penso che questo sia dovuto a:

  • Tutti lo conoscono già, quindi non dovranno imparare una nuova API.
  • È già stato configurato con il loro server di integrazione continua per funzionare con NUnit.

Mi sbaglio di questo?

Ho deciso di utilizzare xUnit su uno dei miei progetti di recente e lo adoro! Ha molto più senso per me e concettualmente sembra un deciso passo avanti da NUnit.

Mi piacerebbe sentire le opinioni su quale framework sia effettivamente il migliore - non prendere in considerazione di doverlo imparare o riconfigurare i test automatici.

    
posta Nobody 16.02.2011 - 12:31
fonte

4 risposte

15

MSTest

Personalmente uso MSTest. NUnit è davvero bello, ma in VS2010, MSTest è già completamente integrato nell'IDE e ci sono modelli di progetto completi per questo. Per .NET, se stai usando il 2010, allora penso che MSTest sia la strada da percorrere (MSTest in VS2008 non credo sia all'altezza) semplicemente per la copertura del codice, il test runner e altri strumenti a tua disposizione fuori dalla scatola. (Se usi CodeRush o R #, allora hanno ottimi runner / strumenti per test per altri framework di test)

Modifica: da allora sono passato a XUnit. : D

    
risposta data 16.02.2011 - 14:35
fonte
14

Ho iniziato a utilizzare Gallio / MbUnit diversi anni fa. E le caratteristiche e le gemme che fornisce sono così potenti che non ho mai rimpianto la mia scelta. In effetti, ora faccio parte del team di sviluppo del progetto Gallio OSS; quindi posso contribuire a renderlo ancora più fantastico.

  • MbUnit ha molte funzioni potenti che semplificano la vita del mio sviluppatore (verificatori contrattuali, fabbriche di test, comparatori di uguaglianza strutturale, test combinatori, framework di generazione dati, diffondere il testo, asserzioni xml, punti di estensione, ecc.)
  • Gallio offre una piattaforma coerente per eseguire tutti i miei test con una buona strumentazione di reporting. Mi piace anche il fatto di poter integrare i test di altri progetti OSS che non usano MbUnit e semplicemente li eseguo. Anche l'integrazione perfetta con molti strumenti di terze parti è comoda (R #, PoSh, dotCover, ecc.) E l'estensibilità dell'infrastruttura è sorprendente (ad esempio, ho appena finito di scrivere un adattatore di test per un framework di test C ++ non gestito nativo Presto farà parte di una futura versione)

La wiki è sicuramente un buon punto di partenza per scoprire Gallio e MbUnit v3. Manca alcuni capitoli ma è già abbastanza utile.

    
risposta data 16.02.2011 - 13:04
fonte
9

Selezionarne uno e usarlo è forse il passo più importante qui.

Personalmente sceglierei NUnit per alcuni motivi. Innanzitutto è il supporto degli strumenti. È disponibile un componente aggiuntivo gratuito per Visual Studio 2010 e tutte le terze parti principali i plugin lo supportano Ogni singolo sistema di costruzione, l'utilità di copertura del test e il server CI lo supportano. In molti casi senza un plugin. A livello di codice, è in grado di gestire praticamente qualsiasi scenario a questo punto: test guidati dai dati, ereditarietà, classi di test astratti, classi di test generici, setup, demolizioni, ecc. In una certa misura abbiamo xUnit perché NUnit è diventato troppo ricco di funzionalità e potente.

Oltre a NUnit, penso che potresti fare una discussione abbastanza buona per MBUnit + Gallio come menzionato da Yann - è una struttura molto solida. Quello che dovresti evitare se possibile sarebbe MSTest, che ha alcuni difetti fatali IMHO. I difetti sono alcuni dei vincoli sulle tue classi di test, come assenza di ereditarietà e dipendenze da SKU professionali o di studio visivo. Includendo la necessità di installare Visual Studio sul server di build per eseguire i test.

    
risposta data 16.02.2011 - 18:08
fonte
0

L'unico motivo è che NUNIT diventa più standard di settore rispetto a xUnit. Ma personalmente, amo xunit.

    
risposta data 05.12.2011 - 04:11
fonte

Leggi altre domande sui tag