[英]Running individual NUnit tests programmatically
我需要以編程方式運行單獨的C#NUnit測試。 我發現另一篇文章非常有助於向我展示如何以編程方式運行整套測試,但我需要能夠選擇單獨的測試。
我認為設置一個NameFilter可以解決這個問題,但RemoteTestRunner似乎只認為當我的套件中有超過五十個時,我的套件中有一個測試。 它是否真的將單個DLL中的所有測試集中到一個龐大的測試中? 有沒有辦法可以將它們分開並運行單獨的測試用例?
我也必須傳遞一個過濾器,只是執行
TestResult testResult = remoteTestRunner.Run(new NullListener(), null , false, LoggingThreshold.Error);
以NullReferenceException結束。 我很快創建了一個空濾鏡
class EmptyFilter : TestFilter
{
public override bool Match(ITest test)
{
return true;
}
}
並將其傳遞給remoteTestRunner
。
TestResult testResult = remoteTestRunner.Run(new NullListener(), new EmptyFilter() , false, LoggingThreshold.Error);
那很有效。 可以投入一點點的是搜索NUnit是否已經有一個可以重復使用的類似過濾器,而不是創建一個自定義過濾器。
我不得不使用SimpleNameFilter並將其想要運行的單元測試的名稱傳遞給它的構造函數。 這就是我所擁有的:
SimpleNameFilter filter = new SimpleNameFilter("Google.Maps.Test.Integrations.GeocodingServiceTests.Empty_address");
TestResult testResult = remoteTestRunner.Run(new NullListener(), filter, false, LoggingThreshold.Error);
您可以通過從測試本身中獲取或通過查看NUnit程序中的測試屬性來獲得完全限定的測試名稱。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.