我目前正在从事一个项目,该项目对我开发的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
是否有一种方法可以仅并行运行我的不同功能?当我单击“运行选定的测试”时,它将优先于完整功能,而不是其他功能。我需要等待第一个场景完成才能运行下一个场景
答案 0 :(得分:0)
像这样建立场景是非常糟糕的做法,应尽可能避免。话虽这么说,如果必须这样做。您可以在功能级别启用并行化。
如果您使用的是NUnit,则可以在程序集级别添加[assembly: Parallelizable(ParallelScope.Fixtures)]
。
默认情况下,Xunit应该按类或功能并行运行测试。意味着功能内的所有测试将依次运行。
您仍然应该考虑重构您的方案,以使它们之间不再相互依赖,而我之前一直走这条路,这最终成为一个难以处理的噩梦。
答案 1 :(得分:0)
嗯...我找到了一种解决方法,设法使它在SpecRun上可以工作。
我只需要逐个运行我的功能,并让另一个应用程序管理流量线,所以我使用Windows Forms开发了一个应用程序。
也许不是解决此问题的最佳方法,但由于我时间有限且情况不佳,所以效果很好。