Recentemente ho iniziato a utilizzare NUnit per eseguire test di integrazione per il mio progetto. È un ottimo strumento, ma ho trovato uno svantaggio a cui non riesco a dare la risposta. Tutti i miei test di integrazione utilizzano l'attributo TestCaseSource e specificano il nome sorgente del caso di test per ciascun test. Ora il problema è che la preparazione di queste fonti di test richiede un po 'di tempo (~ 1 min.) E se sto eseguendo un singolo test, NUnit carica sempre OGNI SINGOLO fonte di test case, anche se non è una fonte di test per il test che sto correndoNUnit: carica TUTTI i TestCaseSources anche se non sono richiesti dal test corrente
È possibile modificare questo comportamento in modo che vengano caricate solo le origini del caso di test per il test? Voglio evitare di creare nuovi assembly ogni volta che voglio creare un nuovo test (sembra piuttosto superfluo e ingombrante, per non dire difficile da mantenere), dal momento che ho letto che i test in diversi assembly sono caricati separatamente, ma non lo faccio so delle fonti del caso di test. Vale la pena ricordare che sto usando Resharper come runner di test.
TL; DR: È necessario indicare a NUnit di caricare solo le origini TestCase necessarie per i test in esecuzione nella sessione corrente. Il comportamento corrente è che TUTTE TestCaseSources vengono caricati per qualsiasi test eseguito.
Puoi fornire del codice che mostri il comportamento corrente? –
Certo, modificherò la domanda originale a breve e aggiungerò il codice che sto usando. – Anshul
Questo dimostra il comportamento per me - esecuzione di ReSharper 6 su VS2013. Mi scuso per la formattazione - non volevo postarla come risposta non-risposta. Anche se non sto eseguendo 'TestWhichIAmNotRunning', ReSharper valuterà' InfiniteValues', che restituirà '1' (quasi) per sempre. - - - - - 'public static IEnumerable InfiniteValues {get {while (DateTime.Now! = DateTime.MinValue) yield return 1; }} [Test, TestCaseSource ("InfiniteValues")] public void TestWhichIAmNotRunning (int value) {} ' –