有没有一种方法可以跳过或满足基于布尔的方案?

时间:2020-07-06 21:12:32

标签: c# specflow

我遇到了在应用程序中实现功能切换的情况,并且我希望针对应用程序的两种状态都进行自动化的Selenium测试。 (这两种状态在生产状态下都是可能的。)执行的测试将基于Web应用程序中存在的功能切换配置。

在正常情况下,使用“方案大纲”将生成可以通过“测试资源管理器”执行的测试,并且可以将应用程序的CI流程配置为执行属于测试程序集的所有测试它建成后。在我的情况下,应用程序状态可能导致一项测试通过而另一项测试失败(请考虑由于功能状态而缺少UI控件)。我看了一下钩子,发现有一个BeforeScenario标签,但是我认为这并不能让我获得我想要实现的目标,因为它可以让我在执行方案之前进行一些设置。

1 个答案:

答案 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行以启用测试。