如何打印py.test会话的fixture值

时间:2016-10-28 03:14:13

标签: pytest

我正在使用py.test与selenium和applitools眼睛---那些后面的部分无所谓,只有py.test部分。我正在使用会话级别的灯具计算一些测试运行的会话级配置,如下所示:

@pytest.fixture(scope='session')
def branch(request,timestamp):
branch = request.config.getoption('--branch')
if not branch and not request.config.getoption('--live'):
    # auto-generate branch
    branch = "auto " + timestamp
return branch

我想将计算值打印为测试标题的一部分---或以任何其他方式将其打印为真正的标准输出。

我首先尝试在上面的分支函数中使用capsys.disable(),但是我收到一条错误消息,即capsys是一个功能级夹具,因此不能被会话级夹具使用。很公平。

然后我尝试复制示例以添加测试报告标题的信息:

def pytest_report_header(config,branch):
    print branch

但似乎没有分支可用作pytest_report_header的夹具。我可以直接调用branch()函数,但这种方法会失败。

我见过this question但是我不知道它是否适用 - 它有点超过我的头脑。测试。

这看起来应该是一件简单的事情,但我被卡住了 - 任何想法?

1 个答案:

答案 0 :(得分:0)

我还没有找到我问的问题的答案,但我已经找到了解决问题的方法:因为我正在进行硒测试,所以输出捕获的东西在我的情况下是无关紧要的,所以我可以完全关闭它。

我刚刚发现了py.test的-s标志,就是这样。