2015-06-04 61 views
1

所以,我有一個合理數量的硒測試。我希望它們通過批處理腳本,nunit-console和RemoteWebDriver在後檯安靜地運行。我已經有了這個設置。我還希望能夠與使用nunit的visual studio 2013中的其他驅動程序一起運行相同的測試(與我一起觀看,調試,編寫新測試等)。我已經設置好了。問題是我想能夠同時運行它們。有沒有辦法查看硒測試是通過nunit還是nunit控制檯運行?

我在考慮檢查調用程序是否是nunit vs nunit-console來決定使用哪個驅動程序,但我有點不確定該如何設置它。

我認爲:

bool isConsole = Process.GetProcessesByName("nunit-console") 
       .FirstOrDefault(p => p.MainModule.FileName.StartsWith(@"C:\Program Files (x86)\NUnit 2.6.4\bin")) != default(Process); 

if (isConsole) 
{ 
    // remote 
} 
else 
{ 
    // ff,chrome,etc... 
} 

然而,這不會讓我在後臺悄悄運行套件,而在視覺工作室運行單獨的測試。

回答

1

我不知道是否有當你運行一個Selenium測試任何差異,但與正常NUnit的測試,你可以這樣做:

if("nunit" == Process.GetCurrentProcess().ProcessName)) { 
    ... 
} 

這得到這是實際執行的過程中你的名字測試,而不是僅僅檢查進程當前是否在機器上運行。

從Visual Studio內部運行,我從控制檯獲得了「vstest.executionengine.x86」的進程名稱,我得到了「nunit-console」,並從gui獲得了「nunit」。

根據您正在運行測試的流程模型,您可能需要檢查父進程而不是當前進程,這是可能的。將Nunit配置爲在單獨的進程中運行測試時,使用上述代碼報告的進程名稱爲「nunit-agent」。出於某種原因,我無法讓nunit-console在此刻運行,所以我不知道它是否有不同的進程名稱,您可以使用它。

如果您確實需要跟蹤進程調用堆棧以查看父進程是什麼,那麼有關如何在this question上執行該操作的一些優秀答案。

+0

這正是我希望做的。謝謝! –