Mam bibliotekę klasy nunitów zawierającą przypadki testowe. Chcę programowo uzyskać listę wszystkich testów w bibliotece, głównie nazwy testowe i ich identyfikatory testowe. Oto co mam do tej pory:Pobierz programowo listę bibliotek w bibliotece nunit bez konieczności wykonywania testów.
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);
}
Problem jest, że runner.TestResult jest null, dopóki faktycznie uruchomić testy. Oczywiście nie chcę przeprowadzać testów w tym momencie, chcę tylko uzyskać listę testów w bibliotece. Następnie dam użytkownikom możliwość wyboru testu i uruchomienia go indywidualnie, przekazując identyfikator testu do instancji RemoteTestRunner.
Jak mogę uzyskać listę testów bez faktycznego uruchomienia wszystkich?
+1, jednak nie jest twist: z TestCaseAttribute można parametrize metody badawczej, a więc przekształcenie go w wielu testach (logicznych). Nic, z czym nie można poradzić sobie poprzez refleksję, ale coś, o czym trzeba pamiętać. –
@ Christian.K Dobra uwaga, aby OP miał na uwadze. –
Myślałem o zrobieniu tego pierwotnie, ponieważ dałoby mi to nazwy testowe (funkcja), jednak nie dałoby mi to identyfikatorów testowych. Dopóki mogę wykonać test RemoteTestRunner przefiltrowany przez nazwę testu zamiast identyfikatora testu, to powinno działać poprawnie, sprawdzi to. – Justin