有没有办法在 specflow 的并行测试中只运行功能?

我目前正在从事一个项目,该项目在我开发的 Web 应用程序上测试某些功能。它工作得很好,但我需要并行运行这些功能来争取时间。


通过更改“testThreadCount”属性,我可以并行运行我的测试。我的问题是:我的功能是独立的,但我的场景不是。例子:


    Feature: Test sql insert


    Scenario: 1 - Insert client on the database

    Given I insert my credentials

    And I insert some data on my sql database

    Then my client gets inserted succesfully


    Scenario: 2 - Check if client exists

    Given The above scenario is succesful

    And I log in on my web application

    When I'm on the dashboard

    Then The client should be there

有没有办法只并行运行我的不同功能?当我点击“运行选定的测试”时,它会优先考虑完整的功能而不是不同的功能。在运行下一个场景之前,我需要等待第一个场景完成


陪伴而非守候
浏览 66回答 2
2回答

慕沐林林

像那样构建你的场景是一种非常糟糕的做法,应该尽可能避免。话虽如此,如果必须这样做。您可以在功能级别打开并行化。如果您使用的是 NUnit,则可以 [assembly: Parallelizable(ParallelScope.Fixtures)]在程序集级别添加。在这种情况下,Xunit 应该默认按类或功能并行运行测试。这意味着一个功能中的所有测试将连续运行。你仍然应该考虑重构你的场景,这样它们就不会相互依赖我以前一直走这条路,它最终变成了一个无法控制的噩梦。

一只甜甜圈

好吧......我找到了一个解决方法,设法让它在 SpecRun 上工作。我只需要一项一项地运行我的功能并让另一个应用程序管理交通线路,所以我开发了一个使用 Windows 窗体的应用程序来完成这项工作。可能不是解决这个问题的最佳方式,但鉴于我缺乏时间和环境,它做得很好。
打开App,查看更多内容
随时随地看视频慕课网APP