Come si confronta NUnit per C # con la funzione Unit Test integrata con Visual Studio


12

Ho bisogno di lavorare in gruppo per sviluppare un'applicazione desktop di medie dimensioni sviluppata utilizzando C # .NET. Prima di questo, non ho applicato Unit Testing e Test Driven Development. Sono consapevole che esistono molti strumenti e framework per le applicazioni C # di Unit Testing. A partire da ora, sono a conoscenza di Nunit e della funzione Unit Testing integrata con Visual Studio.

Vorrei sapere come si confrontano i due?

Risposte:


14

C'è una certa sovrapposizione tra i due di sicuro. NUnit è il predecessore e, di conseguenza, più maturo. Il framework C # Unit Test è più giovane, ma integrato con Visual Studio.

Vengo dal mondo Java in cui JUnit è il re (ce ne sono altri, ma nessuno così popolare), e NUnit 2.5.x è davvero una buona corrispondenza con il modo in cui funziona JUnit 4. In effetti, funziona molto meglio della controparte Java.

Per quanto riguarda la definizione del test, preferisco NUnit. Sicuramente MS Test ha attributi simili (ma diversi) che applichi alle tue classi, ma credo che manchino alcune funzionalità che possono farti risparmiare un po 'di lavoro su alcuni tipi di test. Potresti voler dare un'occhiata a una discussione simile su StackOverflow .

Mi piace il nuovo modello di asserzione incorporato in NUnit (sta usando le asserzioni di stile Hamcrest ) perché sono entrambi facili da leggere e facilmente estensibili.

  • NUnit avrà un supporto di terze parti migliore, MS Test avrà una migliore integrazione (pronta all'uso).
  • NUnit avrà una maggiore flessibilità ed estensibilità, MS Test soffrirà in questo settore.
  • Entrambi eseguono test unitari e controllano i risultati, entrambi funzioneranno per TDD.

3

L'unica vera differenza che ho notato quando ho dovuto creare uno script di build per l'esecuzione su un server MSBUILD dedicato da TFS, impostare nUnit e ottenere risultati di test nUnit è stata una vera seccatura, configurarlo e ottenere i risultati per MSTest è stato semplicissimo.

Inoltre, si è verificato un problema con Resharper in cui i test MSTest non potevano essere eseguiti dal test runner. Nelle versioni più recenti questo è stato risolto, quindi se hai una versione precedente di Resharper potrebbe essere ancora un problema.

Questo post di Roy Oshereve è ancora una bella panoramica.

ps: cancellata l'altra mia risposta, non mi è stata affatto utile, mi scuso per quella.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.