我遇到了在应用程序中实现功能切换的情况,并且我希望针对应用程序的两种状态都进行自动化的Selenium测试。 (这两种状态在生产状态下都是可能的。)执行的测试将基于Web应用程序中存在的功能切换配置。
在正常情况下,使用“方案大纲”将生成可以通过“测试资源管理器”执行的测试,并且可以将应用程序的CI流程配置为执行属于测试程序集的所有测试它建成后。在我的情况下,应用程序状态可能导致一项测试通过而另一项测试失败(请考虑由于功能状态而缺少UI控件)。我看了一下钩子,发现有一个BeforeScenario标签,但是我认为这并不能让我获得我想要实现的目标,因为它可以让我在执行方案之前进行一些设置。
答案 0 :(得分:0)
我通常包括一个将方案设置为“待定”的步骤。
Scenario: Some new feature
Given pending story 123
Given condition
When action that includes new feature
Then something
Given pending story 123
的步骤定义将调用:
Assert.Inconclusive($"Pending story {storyNumber} (https://dev.azure.com/company/project/workitems/edit/{storyNumber})");
使用MS Test时,这标志着测试没有定论。我们使用Jenkins进行持续集成,并且我们的构建继续进行。这也很方便,因为我可以在Azure DevOps,GitHub,Jira或它们的同类文件中提供指向故事或功能的链接。
这并非完全是功能切换,但是很容易删除或注释掉主题分支中场景的Given pending
行以启用测试。