我正在使用 Godog 在我的 Go API 中执行 Cucumber 测试。我的测试在 .feature 文件中定义,并带有相应标记的场景。我正在寻找一种基于标签运行场景的方法,其中仅当特定标签完全匹配时才执行场景。例如,考虑以下场景:
@a
@b
Scenario: Scenario 1
...
@a
Scenario: Scenario 2
...
@a
@c
Scenario: Scenario 3
...
我希望场景 3 仅在指定了
a
和 c
时执行。目前,如果我指定 a
,它将运行所有场景。
我尝试使用以下 Go 代码片段(简化)来实现此功能:
func (m ScenarioManager) GetTags() string {
tags := m.Environment
if tag := GetTags(); tag != "" {
tags += " && " + tag
}
return tags
}
func TestGenericScenario(t *testing.T) {
env := GetEnvironment()
apiConfig, err := suite.ParseConfigFile(GetEndpointConfigFilePath(), env)
...
manager := ScenarioManager{Environment: env, ApiConfig: apiConfig}
tests := godog.TestSuite{
ScenarioInitializer: manager.InitializeScenario,
Options: &godog.Options{
...
Tags: manager.GetTags(),
Concurrency: 1,
},
}
if tests.Run() != 0 {
t.Fatal("non-zero status returned, failed to run feature tests")
}
}
我认为使用 && 运算符可以解决问题,但事实并非如此。
谢谢你。
使用标签
ab
、a
和 ac
来代替怎么样?