【问题标题】:Using Specflow and NUnit version 3 to run tests in paralel使用 Specflow 和 NUnit 版本 3 并行运行测试
【发布时间】:2015-01-27 07:55:48
【问题描述】:

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

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

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

谢谢!

【问题讨论】:

  • 你在做什么这么“重”?我猜这些不是单元测试。硒有什么机会?
  • 是的,Specflow 正在生成 nUnit 测试,然后处理不同浏览器的 selenium 驱动程序。有几种不同的浏览器适用于几种不同的环境,并且由它们产生的组合变得越来越繁重

标签: c# parallel-processing nunit specflow


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    非常感谢您的建议。

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

    编辑

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

    【讨论】:

    • 您提到这是内置于 nunit 3+ 中的。你知道 Specflow 是否支持 within 功能文件中的并行场景?我在网上找到了一些参考资料,表明它应该是可能的,但没有具体的例子。所有具体示例都围绕并行运行单独的功能。
    • 回答我自己的问题 - 看起来 nunit 不支持这个。使用 'parallelization per method' 属性会引发编译错误。
    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多