我是新行为BDD。我想根据命令行中传递的标记去一些逻辑。当我做context.tags / context.scenario.tags时,我将获得在该场景中定义的所有标签。如何只获取从命令行传递的标记
先谢谢
答案 0 :(得分:0)
您传递给CLI的标签实际上并不是您设置的标签,而是标记您选择执行(或排除执行,具体取决于方式你传递了他们)。我只说只有Behave的跑步者可以访问这些数据。
如果要根据传递给CLI的参数实现不同的行为,请使用--define
选项(请参阅here)
然后您需要做的就是通过context.config.userdata
检索您的数据
假设您想要定义参数x,您可以像这样调用Behave:
behave --define x=1 test.feature
然后在步骤定义中检索已定义的数据,如下所示:
x = context.config.userdata['x']
答案 1 :(得分:0)
如果您确实需要,您可以从 context.config._tags 获取此信息。 它应该返回带有标签/标签表达式的字符串列表。
例如,当你运行时:
beahve --tags ~@fixme --tags @buggy,@test
context.config._tags 将具有价值:
['~@fixme', '@buggy,@test']