Ho una libreria di classi nunit contenente casi di test. Voglio ottenere a livello di programmazione un elenco di tutti i test nella libreria, principalmente i nomi dei test e i relativi ID di test. Ecco quello che ho finora:Ottieni una lista di test nella libreria nunit programmaticamente senza dover eseguire i test
var runner = new NUnit.Core.RemoteTestRunner();
runner.Load(new NUnit.Core.TestPackage(Request.PhysicalApplicationPath + "bin\\SystemTest.dll"));
var tests = new List<NUnit.Core.TestResult>();
foreach (NUnit.Core.TestResult result in runner.TestResult.Results)
{
tests.Add(result);
}
Il problema è che runner.TestResult è nulla fino a quando effettivamente eseguire i test. Ovviamente non voglio eseguire i test a questo punto, voglio solo ottenere un elenco di quali test sono nella libreria. Successivamente, darò agli utenti la possibilità di selezionare un test ed eseguirlo individualmente, passando l'id di test all'istanza RemoteTestRunner.
Quindi, come posso ottenere l'elenco dei test senza effettivamente eseguirli tutti?
+1, tuttavia v'è una torsione: con la TestCaseAttribute è possibile parametrizzare un metodo di prova, trasformando così in test multipli (logici). Nulla che non possa essere gestito dalla riflessione, ma qualcosa da tenere a mente. –
@ Christian.K Buon punto, per l'OP da tenere a mente. –
Inizialmente pensavo di farlo, dato che mi avrebbe dato i nomi di test (funzione), tuttavia non mi avrebbe dato gli ID di test. Finché riesco a eseguire un'esecuzione RemoteTestRunner filtrata dal nome del test anziché dall'id test, questo dovrebbe funzionare correttamente, lo verificherò. – Justin