Sto usando Visual Studio (a volte resharper) per eseguire il mio unit test.
Ho sentito parlare di NUnit, ma non ne so molte cose ...
Dovrei preoccuparmene? Può offrire qualcosa di meglio dello studio visivo?
Dovrei usare NUnit e perché?
Sto usando Visual Studio (a volte resharper) per eseguire il mio unit test.
Ho sentito parlare di NUnit, ma non ne so molte cose ...
Dovrei preoccuparmene? Può offrire qualcosa di meglio dello studio visivo?
Dovrei usare NUnit e perché?
Risposte:
NUnit ha pochi vantaggi rispetto a MS-Test
Assert.AreEqual(expected, actual)
VsAssert.That(actual, Is.EqualTo(expected))
[TestCase]
! NUnit consente test parametrizzati.Dal mio punto di vista corrente (dopo 8 mesi di sviluppo con circa 10 sviluppatori in media) vorrei consigliare contro usando MSTest per i seguenti motivi
In altre parole, se dovessi decidere di nuovo 8 mesi fa, probabilmente prenderei NUnit. Potrei non avere il rapporto sui risultati dei test integrato, ma gli sviluppatori avrebbero un'esperienza di test più fluida.
Ecco la mia esperienza con MS Test
Inoltre: ora abbiamo altri test, non possiamo nemmeno dire quanti. È impossibile eseguirli più da Visual Studio, a causa di OutOfMemoryExceptions e altri problemi di instabilità. Eseguiamo i test da script. Sarebbe facile visualizzare i risultati dei test in Visual Studio, ma quando la soluzione è aperta, VS si blocca (ogni volta). Quindi dobbiamo cercare i test falliti utilizzando la ricerca di testo. Non c'è più alcun vantaggio di uno strumento integrato.
Un altro aggiornamento : ora stiamo usando VS 2013. Molte cose sono cambiate. Hanno riscritto il test runner di MS Test per la terza volta da quando abbiamo iniziato. Ciò ha causato molte modifiche sostanziali, ma nessuna delle nuove versioni ha funzionato meglio. Siamo contenti di non aver utilizzato le fantasiose funzionalità di MS Test, perché non sono più supportate. È davvero un peccato. Stiamo ancora utilizzando gli script per creare ed eseguire tutti gli unit test, perché è più maneggevole. Visual Studio ha richiesto alcuni minuti per avviare l'esecuzione dei test (misure di tempo dopo la compilazione fino all'inizio del primo test). Probabilmente lo risolvono con un aggiornamento e questo potrebbe essere un problema specifico del nostro progetto. Tuttavia, Resharper è molto più veloce quando si eseguono gli stessi test.
Conclusione : almeno in combinazione con Resharper, MS Test è utile. E spero che finalmente scoprano come dovrebbe essere scritto il test runner e non apporteranno questo tipo di modifiche sostanziali quando aggiorneremo Visual Studio la prossima volta.
NUnit può essere utilizzato in combinazione con Visual Studio. È un framework, non un programma separato. Quindi potresti interessarti e vedere se ti va bene :).
"Dopo aver installato il plug-in, troverai un nuovo sottomenu nel menu degli strumenti."
Vedere http://nunitit.codeplex.com/ per ulteriori informazioni sull'importazione.
Inoltre, è possibile trovare molto utilizzando la ricerca di SO. Questo argomento elenca i vantaggi di NUnit rispetto ai test standard MS, ad esempio.
Il vantaggio più grande MS-Test rispetto a NUnit è che MS-Test può generare oggetti fittizi utilizzando Reflection. L'ho trovato molto utile
NUnit funziona con l'edizione Standard di VS.
Non sono sicuro degli altri, ma NUnit fornisce una bella GUI e una console per eseguire i tuoi test unitari e puoi anche generare un report del risultato dell'esecuzione di NUnit Test che fornirebbe i dettagli di dove il test è fallito o superato e anche a che ora è stato prendi per il tuo unit test
NUnit è un framework di unit test, supportato anche da resharper. Penso che tu stia utilizzando il framework di unit test di Microsoft, quindi NUnit è solo un'alternativa al prodotto Microsoft;)
Ecco il collegamento alla homepage di NUnit: http://nunit.org
In NUnit , i test non vengono eseguiti in parallelo. Piuttosto, sembra che tutti i test vengano eseguiti su un singolo thread. In MSTest, ogni test viene istanziato su un thread separato, il che risulta che le esecuzioni vengono intercalate. Pertanto, se il test A dipende dal test B per il suo successo, probabilmente fallirà poiché il test B probabilmente inizierà a essere eseguito mentre il test A è in esecuzione.
Se stai usando Visual Studio devi usare NUnit per fare unit test, e se stai usando java (Netbeans) devi usare JUnit per unit test.
Ecco un esempio per un semplice test unitario della calcolatrice
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using SimpleCalculator;
using NUnit.Framework;
namespace CalculatorTest
{
[TestFixture]
public class Class1
{
public Calculator _calculator;
[TestFixtureSetUp]
public void Initialize()
{
_calculator = new Calculator();
}
[Test]
public void DivideTest()
{
int a = 10;
int b = 2;
int expectedValue = a / b;
int actualvalue = _calculator.Divide(a, b);
Assert.AreEqual(expectedValue, actualvalue,"Failure");
}
}
}