微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

想要在 specflow C# 中使用多个场景为每个功能文件只执行一次背景标记

如何解决想要在 specflow C# 中使用多个场景为每个功能文件只执行一次背景标记

代码如下:

Background: Navigate to mail from inBox
Given I login into gmail as valid user
When I click on mail from InBox
Then mail should be open

Scenario: Delete mail from InBox
When I open mail from InBox page
And I click on Delete icon
Then mail should be deleted

Scenario: Sent mail from Draft Box
When I open mail from Draft Box
And I click on Sent button
Then mail should be sent

所以在这里我希望背景应该只为这个功能文件执行一次。一旦后台步骤被执行并导航到收件箱页面,那么场景应该一个一个地执行。执行完该功能文件中的所有场景后,应关闭浏览器。

现在它正在执行后台步骤,然后移动到第一个场景执行它并且在同一个浏览器上,它仍然从后台执行步骤。

解决方法

您正在寻找带有 BeforeFeaturescoping 钩子到这个特征文件。

所以你需要一个像这样的钩子:


[BeforeFeature()]
[Scope(Feature = "feature title")]
public static void SetupInbox()
{
/// your automation code
}

每个功能文件只执行一次。

另请注意,根据您的测试运行程序,场景执行的顺序与您的功能文件中的顺序不同。

此外,我们非常不鼓励您编写相互依赖的场景。像单元测试一样,场景应该能够自己执行。


完全披露:我是 SpecFlow 的社区经理和长期贡献者

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?