使用Specflow和NUnit 3在并行中运行测试

5
我有一个使用SpecFlow和NUnit 2.6.3作为我的测试提供程序的项目。目前它工作正常,但现在有一个需求需要并行运行测试,因为它们变得越来越重要。
阅读后,我发现NUnit版本3将支持开箱即用的并行处理,但它仍在alpha版本中。而且我无法使用Nunit 3运行由SpecFlow生成的测试。。
有没有人知道现在是否可以使用SpecFlow和NUnit版本3?或者采用其他方法,仍然使用NUnit版本2.6.3和SpecFlow来实现并行处理?
感谢!

你在做什么那么“重”的事情?我猜这不是单元测试。可能是Selenium吗? - Dave Bush
是的,Specflow正在生成nUnit测试,然后处理不同浏览器的Selenium驱动程序。有几种不同的浏览器适用于几种不同的环境,由此产生的组合变得越来越繁重。 - akrsmv
3个回答

3
非常感谢您的建议。
我自己想出了一种定制解决方案 - 通过在自定义命令行应用程序中使用反射探索测试dll,然后生成各个调用nunit-console.exe的单独OS进程,每个进程都使用--include参数指定特定组的测试。这样可以避免任何线程不安全的代码并仍然实现我的目标。
编辑
顺便说一句,这是我的解决方案,希望有人会觉得它有用。即使现在的nunit 3+内置了并行处理,但这个解决方案经过了对数千个specflow/selenium测试的测试。它还具有良好的TeamCity集成。我认为它很简单(总共只有3-4个类),并且我试图在README文件中记录所有可用的控制台选项。

您提到这已经内置在nunit 3+中。您知道Specflow是否支持在一个功能文件中并行运行场景吗?我在网络上找到了一些参考资料表明这应该是可能的,但没有具体的示例。所有具体的示例都是关于并行运行单独的功能。 - SamuelKDavis
回答自己的问题 - 看起来nunit不支持这个。使用“每个方法并行化”属性会引发编译错误。 - SamuelKDavis

3

0

我已经在 NUnit 3.2.0 的 fixture 级别上测试了并行测试用例执行。截至目前,SpecFlow 2.0 支持并行性,并且与 NUnit 3.2.0 配合良好,但是 SpecFlow 报告引擎无法从 NUnit 测试执行输出生成 HTML 报告。该问题正在 GitHub 上跟踪


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接