1

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"

何も出力を生成しなかったか、テストの失敗を引き起こしました。

4

2 に答える 2

2

最初に頭に浮かぶのはpy.test-sです

しかし、デフォルトでは、funcargsはトレースバックと出力/エラーを提供します-どのプラグインを使用していますか?何かが明らかにそれを隠しています

たとえばプログラムの場合

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

def test_fun(foo):
   pass

py.test呼び出しは私に両方を与えます-funcarg関数とテキストのトレースバック

于 2012-07-20T07:47:03.730 に答える
1

funcarg をデバッグするには:

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

def test_function(myfuncarg):
    ...

それで:

python -m pytest test_function.py

ロニーが答えたように、ファンカーグからの出力を見るにはうまくいきpytest -sます。

于 2012-07-20T13:54:49.280 に答える