首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将标记从CLI传递到Pytest-bdd并执行特定方案

将标记从CLI传递到Pytest-bdd并执行特定方案
EN

Stack Overflow用户
提问于 2019-06-06 20:53:12
回答 1查看 2.6K关注 0票数 3

标记(烟雾/回归)将从CLI传递,并在conftest.py中进行解释,以执行满足这些标记的方案。

我查看了pytest-bdd文档这里,但未能找到连接。

场景大纲有:(因为python装饰器可以堆叠)

代码语言:javascript
运行
复制
@pytest.mark.smoke
Scenario Outline: "VALID" Test

@pytest.mark.smoke
@pytest.mark.regression
  Scenario Outline: "INVALID" Test

@pytest.mark.regression
  Scenario Outline: "MIXED" Test

conftest.py

代码语言:javascript
运行
复制
def pytest_bdd_apply_tag(tag, function):    
    if 'smoke' not in tag:  #what should I use to take values from CLI and execute those
        marker = pytest.mark.skip # skips scenario where 'smoke' is not marked
        marker(function)
        return True
    return None

conftest.py中的上述代码跳过所有场景。CLI输入:

pytest --env='qa' -m 'smoke'

其中pytest_addoption用于--env='qa'pytest_bdd_apply_tag用于-m

我们只希望在传递烟雾时执行标记为烟雾(有效和无效)的方案;在传递回归时执行标记为回归(无效和混合)的方案;在不通过-m选项传递任何参数的情况下执行默认烟雾。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-10 17:39:46

糟糕的是,我想知道我是如何被pytest标记与场景标记行误导的,就像文档中提到的那样。

我对特性文件所做的更改是

代码语言:javascript
运行
复制
@smoke
Scenario Outline: "VALID" Test

@smoke @regression
  Scenario Outline: "INVALID" Test

@regression
  Scenario Outline: "MIXED" Test

我已经从pytest_bdd_apply_tag中删除了conftest.py方法。

在命令行中给这个对我有用。

代码语言:javascript
运行
复制
pytest -m "regression" --env="uat"
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56484952

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档