问题描述
我可能完全错了,但是我已经搜索了可用的文档并进行了2个星期的搜索,并且我的头完全缠绕在车轴上。
我正在尝试使用SpecFlow为我们的网站编写回归测试。这意味着我想行使所有功能,以便如果我们无意中破坏了某些东西,它将抓住它。
该站点基本上是事件报告门户。主页上有大约50个不同的按钮,每个按钮都会打开不同事件类别的数据输入页面。
数据输入页面以“向导”的方式排列,从一般问题的页面开始,然后进入更具体问题的页面,依此类推。这些问题或多或少地分为经典的“谁/什么/何时/何地/何处/为什么”分组,每个分组有一个向导页面,因此我们不会一次提出100个问题而使用户不知所措。>
确切需要哪些页面取决于事件的特定类型。有些事件类型最多有8页,有些则只有3页。
我们每页的规格均以BDD样式进行框架-给定/何时/然后。因此,将这些规范转换为SpecFlow功能是很自然的,至少对于一般信息问题的第一页,我已经做到了。但是场景中有大约30多个步骤。
Given I'm logged in on the home page
When I clicked the button for XYZ ticket
Then it opens XYZ ticket
And the General @R_725_4045@ion page is displayed.
我可以从表中驱动该方案,以便可以测试任意数量的不同事件类型。 到现在为止还挺好。 但是现在我想添加
And the General @R_725_4045@ion page requirements are verified
最后一条子句的步骤定义将在常规信息页面上运行整个方案。换句话说,我想使用我在此方案中作为子例程编写的另一方案。 (然后,我想继续对其他每个向导页面执行相同的操作。但是,让我们先获得第一个!)
我找不到解决办法。我尝试为上述子句编写步骤定义,以调用常规信息场景的步骤定义,例如
Given("I am on the General @R_725_4045@ion page")
When ("I click this checkBox")
Then ("This happens")
您曾经能够做到这一点(尽管那仍会重复很多)。但是,现在这是一个警告消息,该函数已被弃用并将被删除(并且由于我现在已经进行了升级,所以它可能已经被删除了-自升级以来我还没有尝试过。)github问题页面({{3 }}上有很多讨论,没有一个对如何做我想做的事情有任何启发。主要作者(SabotageAndi)似乎在说:“那是一件坏事;不要那样做”没有真正的选择,至少没有我能理解的。
任何人都可以给我一个指导,告诉我如何完成我想做的事情吗?
解决方法
我想将我编写的其他方案用作子例程 在这个。
您不能重复使用功能文件中定义的方案。
最好的办法是创建一个新步骤,通过直接调用已定义的步骤来重复使用这些步骤(jameswtelfer于1月31日在您提供的github问题中发表评论)。