我如何在goDog中执行其余功能文件之前执行特定功能文件?

问题描述 投票:0回答:1

在实施其余测试用例之前,我有一些数据设置。我将在执行测试用例之前需要执行的所有数据设置分组在单个功能文件中。

我如何确保在goDog框架中执行任何其他功能文件之前已执行此数据设置功能文件?

go bdd gherkin
1个回答
0
投票

据我所知,您正在寻找一种在运行功能部件/方案之前运行一些安装说明的方法。问题在于,场景和功能是设计隔离的。确保在场景运行之前执行某些操作的方法是定义Background节。抱歉,您不能在所有功能上应用相同的背景。方案按功能分组,每个功能可以指定在每个方案之前执行的Background。我只会在需要的地方复制粘贴您的安装程序:

Background:
  Given I have the base data:
    | User | Status   | other fields |
    | Foo  | Active   | ...          |
    | Bar  | Disabled | ...          |

如果设置中涉及很多步骤,则可以定义一个步骤,然后展开以运行所有“ background”步骤,如下所示:

Scenario: test something
Given my test setup runs

然后像这样实现my test setup runs

s.Step(`^my test setup runs$`, func() godog.Steps {
    return godog.Steps{
                   "user test data is loaded", 
                   "other things are set up",
                   "additional data is updated",
                   "update existing records",
                   "setup was successful",
            }
})

这应该起作用。

当然,为避免必须以Given my test setup runs来启动每个方案,您可以使用以下命令来启动每个功能文件:

Background:
   Given my test setup runs

这将确保在每种情况之前执行设置。结果将是:每个功能文件的开头增加2行,您都准备就绪。

© www.soinside.com 2019 - 2024. All rights reserved.