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

Using Specflow and NUnit version 3 to run tests in paralel

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

继续阅读,我发现 NUnit 版本 3 将支持开箱即用的并行性,但它仍处于 alpha 阶段。我无法 运行 SpecFlow 使用 Nunit 3 生成的测试..

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

谢谢!

我运行陷入同样的​​境地。我提出了一个使用 Selenium Grid、任务并行库和 DynamicObject class 的解决方案。我在这里写了它 http://blog.dmbcllc.com/running-selenium-in-parallel-with-any-net-unit-testing-tool/。 (复制粘贴太长)。希望能帮助到你。据我所知,在 3 个版本之前,这是我们能做的最好的。

非常感谢您的建议。

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

编辑

顺便说一句,here is my solution,我希望有人觉得它有用。尽管现在 nunit 3+ 中有内置的并行性,但它已经针对数以千计的 specflow / selenium 测试进行了战斗测试。它还具有很好的 TeamCity 集成。我认为它足够简单(总共 3-4 类)并且我试图记录 README 文件

中可用的所有控制台选项

我已经使用 NUnit 3.2.0 测试了夹具级别的并行测试用例执行。在撰写本文时,SpecFlow 2.0 确实支持并行性并且与 NUnit 3.2.0 配合良好,但是 SpecFlow 报告引擎无法从 NUnit 测试执行输出生成 HTML 报告。 issue is being tracked here over GitHub