如何并行运行NUnit(Selenium Grid)测试?
我当前的项目使用NUnit进行unit testing并驱动用Selenium编写的UAT。 开发人员通常在VS.Net 2003中使用ReSharper的测试运行器运行测试,我们的构建盒通过NAnt将其踢出。
我们希望并行运行UAT测试,以便我们可以利用Selenium Grid / RC,以便它们能够更快地运行。
有没有人对如何实现这一点有任何想法? 和/或针对多个浏览器环境测试Selenium测试而不自动编写重复测试的最佳实践?
谢谢。
关于这个问题还没有很多工作。 我没有发现任何真正相关的东西。
但是,你的观点很好。 与强大的一个核心CPU相比,现在大多数机器拥有更多核心和更低function的核心。
所以我确实在微软博客上找到了一些东西。 该技术称为PUnit,专门用于测试multithreading环境。
它尽可能接近你要求我能找到的:)
你可以在那里访问相应的博客文章: http : //blogs.microsoft.co.il/blogs/eyal/archive/2008/07/09/punit-parallel-unit-testing-in-making.aspx
更新:链接不再有效。 CodePlex上的项目已被删除。
Update2:这是NUnit 2.5的路线图。 参考
我自己也在努力解决这两个问题。 最后,我开发了一个定制的Nunit测试运行器,能够以并行方式运行多个测试。 这与nunit的Taumuon.Rakija扩展相结合,允许根据您希望测试运行的浏览器动态创建测试。
我现在处于这样的位置,我可以在多个操作系统上针对尽可能多的浏览器类型启动我的测试套件。
不幸的是,这些问题似乎没有一个好的解决方案,所以你可能必须自己为你的特定环境解决它们。
NUnit版本3将支持并行运行测试,这适用于Selenium Grid:
将属性添加到类: [Parallelizable(ParallelScope.Self)]
将与其他测试类并行运行测试。
•ParallelScope.None表示测试可能无法与其他测试并行运行。
•ParallelScope.Self表示测试本身可以与其他测试并行运行。
•ParallelScope.Children指示测试的后代可以相对于彼此并行运行。
•ParallelScope.Fixtures表示灯具可以彼此并行运行。
NUnit框架 – 并行 – 测试 – 执行
Igor Brejc有一篇关于使用MbUnit并行运行测试的博客文章。
然而他确实说“一旦我们将Selenium整合到验收测试中”,所以看起来他只是在尝试,我找不到任何其他post所以我不知道他是否已成功并行运行Selenium测试。
http://igorbrejc.net/development/continuous-integration/gallio-running-tests-in-parallel
您可以使用任务并行库和DynamicObject类在多个浏览器上实现相同测试的并行化。 有关详细信息,请参阅我的文章与任何.NETunit testing工具并行运行Selenium 。