代理和工作线程之间的区别

时间:2017-05-23 15:40:19

标签: jenkins nunit selenium-grid nunit-3.0 nunit-console

我正在使用Jenkins运行NUnit控制台运行程序。这些测试连接到Selenium Grid(也由Jenkins运行),所以我想限制它们的并行度,以避免代理在等待网格上的空闲节点时挨饿。

到目前为止,我还没有设法弄清楚NUnit中agentworker thread之间究竟有什么区别...我怀疑代理可以管理线程,但它&# 39;只是猜测。谢谢:))

1 个答案:

答案 0 :(得分:1)

代理程序是运行程序集测试的单独进程。 worker是一个进程内的一个线程,用于运行特定程序集的测试。

理论上,代理进程可以有多个appdomains,每个域可以有多个程序集,每个程序集可以有多个工作线程。

但实际上,正常的做法是每个程序集都有一个进程,因此不需要多个域,每个进程将运行一些指定数量的工作线程来运行程序集的测试。在某些情况下,您可能更愿意仅并行运行进程,并且在程序集中没有任何并行性 - 这种方法最有可能在没有对您的测试进行任何更改的情况下工作,您可能没有考虑并行性设计。< / p>

代理不“管理”线程。它们只是在一个进程中运行框架,框架根据您应用的属性决定使用多少个线程。

使用多个代理是并行运行nunit V2测试的唯一方式,因为v2框架不了解并行性。