我正在使用Jenkins运行NUnit控制台运行程序。这些测试连接到Selenium Grid(也由Jenkins运行),所以我想限制它们的并行度,以避免代理在等待网格上的空闲节点时挨饿。
到目前为止,我还没有设法弄清楚NUnit中agent
和worker thread
之间究竟有什么区别...我怀疑代理可以管理线程,但它&# 39;只是猜测。谢谢:))
答案 0 :(得分:1)
代理程序是运行程序集测试的单独进程。 worker是一个进程内的一个线程,用于运行特定程序集的测试。
理论上,代理进程可以有多个appdomains,每个域可以有多个程序集,每个程序集可以有多个工作线程。
但实际上,正常的做法是每个程序集都有一个进程,因此不需要多个域,每个进程将运行一些指定数量的工作线程来运行程序集的测试。在某些情况下,您可能更愿意仅并行运行进程,并且在程序集中没有任何并行性 - 这种方法最有可能在没有对您的测试进行任何更改的情况下工作,您可能没有考虑并行性设计。< / p>
代理不“管理”线程。它们只是在一个进程中运行框架,框架根据您应用的属性决定使用多少个线程。
使用多个代理是并行运行nunit V2测试的唯一方式,因为v2框架不了解并行性。