仅使用Godog运行匹配所有标签的场景

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

我正在使用 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")
    }
}

我认为使用 && 运算符可以解决问题,但事实并非如此。

谢谢你。

go testing tags cucumber
1个回答
0
投票

使用标签

ab
a
ac
来代替怎么样?

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