Domanda

Ho del codice che utilizza il modello di gateway condiviso per implementare un'inversione del contenitore di controllo. Ho diverse centinaia di unit test NUnit che esercitano il codice che utilizza questo CIO. Funzionano tutti (sulla mia macchina!) Ma sono preoccupato che questi test possano fallire sotto carico. Mi sembra di ricordare che NUnit (e MSTest) tenta di eseguire test in parallelo su più thread (il che innescerebbe sicuramente le condizioni di gara sul gateway statico / condiviso) ma non riesco a trovare alcuna documentazione che indichi cosa accada effettivamente. La mia esperienza è che NUnit sembra eseguire i test in sequenza. La mia domanda è: NUnit (o MSTest) esegue mai unit test in parallelo? In tal caso, a quali condizioni? E posso disattivarlo tramite una sorta di opzione di configurazione?

È stato utile?

Soluzione

Aggiornamento:

Visual Studio 2010 ha introdotto la possibilità di eseguire test in parallelo.

Ecco un articolo passo passo su come abilitarlo.

MSTest:
Quindi, secondo David Williamson, di Microsoft Visual Studio Team System, su questo post nei forum MSDN:

  

I test NON vengono assolutamente eseguiti   parallelo quando eseguito in VS o via   MSTest.exe. Se vengono eseguiti in a   Carica test tramite VS, quindi questo è a   storia diversa. Esecuzione di base,   tuttavia, è sempre seriale.

Inoltre, i test eseguiti utilizzando MsTest vengono eseguiti ciascuno utilizzando un thread diverso al fine di garantire una lavagna pulita per ciascun test. Non è possibile disabilitare questo comportamento.

NUnit:
NUnit esegue tutti i test sullo stesso thread.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top