我有一個包含測試用例的nunit類庫。我想以編程方式獲取庫中所有測試的列表,主要是測試名稱和測試ID。這是我到目前爲止:以編程方式獲取nunit庫中的測試列表,而無需運行測試
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);
}
問題是,runner.TestResult爲空,直到您真正運行測試。我顯然不想在這一點上運行測試,我只想獲得庫中哪些測試的列表。之後,我會讓用戶選擇一個測試並單獨運行測試,並將測試ID傳遞給RemoteTestRunner實例。
那麼我怎樣才能得到測試列表,而沒有實際運行所有的測試?
+1,但是有一個奇怪的問題:與TestCaseAttribute可以參數化測試方法,從而變成多個(邏輯)的測試。沒有什麼不能通過反思來處理,但要牢記。 –
@ Christian.K好處,OP要記住。 –
我原本想這樣做,因爲它會給我測試(功能)名稱,但它不會給我測試ID。只要我可以做一個RemoteTestRunner運行過濾測試名稱而不是測試ID,那麼這應該工作正常,將檢查出來。 – Justin