如何并行运行NUnit(Selenium Grid)测试?
-
03-07-2019 - |
题
我当前的项目使用NUnit进行单元测试并使用Selenium编写UAT。开发人员通常在VS.Net 2003中使用ReSharper的测试运行器运行测试,我们的构建盒通过NAnt将其踢出。
我们希望并行运行UAT测试,以便我们可以利用Selenium Grid / RC,以便它们能够更快地运行。
有没有人对如何实现这一点有任何想法?和/或针对多个浏览器环境测试Selenium测试而不自动编写重复测试的最佳实践?
谢谢。
解决方案
关于这个问题并没有很多工作。我没有找到任何真正相关的东西。
但是,你的观点很好。与强大的一个核心CPU相比,现在大多数机器拥有更多内核和更低功能的内核。
所以我确实在微软博客上找到了一些东西。该技术称为PUnit,专门用于测试多线程环境。
尽可能接近我要求的内容:)
你可以在那里访问相应的博客文章: 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表示灯具可以并行运行 彼此。
Igor Brejc有一篇关于使用MbUnit并行运行测试的博客文章。
然而他确实说“一旦我们将Selenium整合到验收测试中”,所以看起来他只是在试验,我找不到任何其他帖子所以我不知道他是否已成功并行运行Selenium测试
http://igorbrejc.net/development/continuous - 整合/加利奥-磨合测试 - 在平行
您可以使用Task Parallel Library和DynamicObject类在多个浏览器上实现相同测试的并行化。请参阅我的文章并行运行Selenium任何.NET单元测试工具了解详情。