- SpecFlow 教程
- SpecFlow - 主页
- SpecFlow - 简介
- 测试驱动开发
- Behave驱动开发
- SpecFlow - Visual Studio 安装
- Visual Studio 扩展安装
- SpecFlow - 项目设置
- 其他项目依赖项
- SpecFlow - 运行器激活
- SpecFlow - HTML 报告
- SpecFlow - 结合测试步骤
- SpecFlow - 创建第一个测试
- 配置 Selenium Webdriver
- SpecFlow - 小Cucumber
- SpecFlow - 小Cucumber关键词
- SpecFlow - 特征文件
- SpecFlow - 步骤定义文件
- SpecFlow - 挂钩
- SpecFlow - 背景插图
- 数据驱动测试示例
- 没有示例的数据驱动测试
- 表转换为数据表
- 表转换为字典
- 带有 CreateInstance 的表
- SpecFlow - 带有 CreateSet 的表
- SpecFlow 有用资源
- SpecFlow - 快速指南
- SpecFlow - 有用的资源
- SpecFlow - 讨论
SpecFlow - 挂钩
挂钩是事件绑定,用于在某些步骤添加更多自动化逻辑。例如,对于需要在特定场景之前运行的任何步骤。介绍一下,我们必须在代码中添加[Binding]属性。
Hooks 具有全局访问权限。但可以通过声明作用域绑定将其提供给功能和场景。可以使用标签过滤作用域绑定。
SpecFlow+ 运行器限制
如果我们使用 SpecFlow+ Runner 从多个线程执行测试,则 After 和 Before 挂钩(例如 BeforeTestRun和AfterTestRun )只会为每个线程运行一次。
挂钩属性
下面列出了 Hook 属性 -
BeforeTestRun/AfterTestRun - 用于在完整测试执行之前/之后运行自动化逻辑。它适用的方法应该是静态的。
BeforeFeature/AfterFeature - 用于在单个功能执行之前/之后运行自动化逻辑。它适用的方法应该是静态的。
BeforeScenario 或 Before/AfterScenario 或 After - 用于在单个场景或场景大纲执行之前/之后运行自动化逻辑。
BeforeScenarioBlock/AfterScenarioBlock - 用于在单个场景块执行之前/之后运行自动化逻辑。(在 When 和 Give 步骤之间)。
BeforeStep/AfterStep - 用于在单个场景步骤执行之前/之后运行自动化逻辑。
钩子执行顺序
类似类型的挂钩(例如两个 AfterScenario 挂钩)以随机顺序运行。为了按照特定的顺序执行,我们必须在钩子属性中添加Order属性。
例子
[AfterScenario(Order = 1)] public void CloseBrowser() { // we require this method to execute first... } [AfterScenario(Order = 2)] public void VerifySessionIdAfterBrowserClose() { // ...so we require this method to execute after the CloseBrowser //method is run }
数字表示顺序,这意味着编号最小的钩子首先运行。如果省略该数字,则默认值为 10000。依赖它并提及各个挂钩的顺序并不是一个好的做法。
此外,如果引发未处理的异常,则将跳过以下所有类似类型的钩子。为了防止这种情况,我们应该处理所有异常。