我当前的项目使用 NUnit 进行单元测试并驱动用 Selenium 编写的 UAT。开发人员通常在 VS.Net 2003 中使用 ReSharper 的测试运行程序运行测试,而我们的构建框通过 NAnt 启动它们。
我们希望并行运行 UAT 测试,这样我们就可以利用 Selenium Grid/RC,从而使它们能够运行得更快。
有人对如何实现这一目标有任何想法吗?和/或在不自动编写重复测试的情况下针对多个浏览器环境测试 Selenium 测试的最佳实践?
谢谢你。
我当前的项目使用 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 version 3 will support running tests in parallel, this works good with a Selenium Grid:
Adding the attribute to a class: [Parallelizable(ParallelScope.Self)]
will run your tests in parallel with other test classes.
• ParallelScope.None indicates that the test may not be run in parallel with other tests.
• ParallelScope.Self indicates that the test itself may be run in parallel with other tests.
• ParallelScope.Children indicates that the descendants of the test may be run in parallel with respect to one another.
• ParallelScope.Fixtures indicates that fixtures may be run in parallel with one another.
Igor Brejc 有一篇关于使用 MbUnit 并行运行测试的博客文章。
However he does say "Once we integrate Selenium into acceptance testing", so it looks like he was just experimenting, I can't find any other posts so I don't know if he has successfully run Selenium tests in parallel.
http://igorbrejc.net/development/continuous-integration/gallio-running-tests-in-parallel
You can use the Task Parallel Library and the DynamicObject class to achieve parallelization of the same test on multiple browsers. See my article Running Selenium In Parallel with any .NET Unit Testing Tool for details.