有没有办法看看是否正在通过nunit或nunit-console运行硒测试?

时间:2015-06-04 18:30:04

标签: selenium nunit nunit-console

所以,我有合理数量的Selenium测试。我希望它们通过批处理脚本,nunit-console和RemoteWebDriver在后台安静地运行。我已经有了这个设置。我希望能够使用nunit在visual studio 2013中与其他驱动程序一起运行相同的测试(我观看,调试,编写新测试等等)。我已经设置好了。问题是我希望能够同时运行它们。

我正在考虑检查调用程序是否是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 个答案:

答案 0 :(得分:1)

我不确定当你进行硒测试时是否有任何不同,但是你可以做正常的nunit测试:

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

这将获取实际执行测试的进程的名称,而不仅仅是检查进程当前是否在计算机上运行。

从visual studio中运行,我从控制台获得了一个进程名称" vstest.executionengine.x86",我得到了" nunit-console"从gui我得到" nunit"。

根据您在其下运行测试的流程模型,您可能需要检查父流程,而不是当前流程。将Nunit配置为在单独的进程中运行测试时,使用上述代码报告的进程名称是" nunit-agent"。出于某种原因,我现在无法让nunit-console在这种模式下运行,所以我不知道它是否有不同的进程名称,你可以使用它。

如果您确实需要跟踪流程调用堆栈以查看父流程是什么,那么就this question如何执行此流程有一些很好的答案。