如何调试funcargs函数?

时间:2012-07-19 22:34:04

标签: pytest

如何在funcargs函数中插入pdb?如何在funcargs函数中看到print语句的输出?


我原来的问题包括以下内容,但事实证明我只是在伪装错误的funcarg。叹息。

  

我试过了:

print "hi from inside funcargs"
     

使用和不使用-s调用。

     

我试过了:

import pytest
pytest.set_trace()
     

import pdb
pdb.set_trace()
     

raise "hi from inside funcargs"
     

没有产生任何输出或导致测试失败。

2 个答案:

答案 0 :(得分:2)

首先想到的是py.test -s

但默认情况下,funcargs会为您提供回溯和输出/错误 - 您使用的插件是什么?有些东西显然隐藏了它

例如程序

def pytest_funcarg__foo(request):
    print 'hi'
    raise IOError

def test_fun(foo):
   pass

py.test调用给了我两个 - funcarg函数和文本中的回溯

答案 1 :(得分:1)

调试funcarg:

def pytest_funcarg__myfuncarg(request):
    import pytest
    pytest.set_trace()
    ...

def test_function(myfuncarg):
    ...

然后:

python -m pytest test_function.py

Ronny回答时,为了查看funcarg的输出,pytest -s有效。