使用Specflow和NUnit版本3并行运行测试

时间:2015-01-27 07:55:48

标签: c# parallel-processing nunit specflow

我有一个使用SpecFlow和NUnit 2.6.3作为我的测试提供者的项目。目前它工作正常,但现在需要并行运行测试,因为它们变得越来越重。

在阅读时,我可以看到NUnit版本3将支持开箱即用的并行性,但它仍处于alpha状态。而且我无法使用Nunit 3运行SpecFlow生成的测试..

是否有人知道此时是否可以使用SpecFlow和NUnit版本3?还是其他一些方法,仍然使用NUnit 2.6.3和SpecFlow来实现并行性?

谢谢!

2 个答案:

答案 0 :(得分:3)

我遇到了同样的情况。我想出了一个使用Selenium Grid,任务并行库和DynamicObject类的解决方案。我在这里写了http://blog.dmbcllc.com/running-selenium-in-parallel-with-any-net-unit-testing-tool/。 (复制和粘贴时间太长)。希望能帮助到你。据我所知,在3次发布之前,这是我们能做的最好的事情。

答案 1 :(得分:3)

非常感谢您的建议。

我推出自己的自定义解决方案 - 只需使用自定义命令行应用程序的反射来探索测试dll,然后生成单独的操作系统进程,每个操作系统调用nunit-console.exe,并使用--include参数仅指定特定组测试。这样我就可以避免任何线程不安全的代码并仍然实现我的目标。

修改

顺便说一下,here is my solution,我希望有人可能觉得它很有用。即使现在在nunit 3+中存在内置并行性,但这是针对数千个specflow / selenium测试的战斗测试。它还有一个很好的TeamCity集成。我认为它很简单(总共3-4个类),我试图记录README文件中可用的所有控制台选项