0
テストに重大な変更を加えずに一連のテストのカスタムロガーを作成したいとします。私はテストメソッドに渡すことができる什器のようなものを使用したいと思います。そして、テストの全期間中、stdoutとstderrをキャプチャしてそれをカスタムメッセージに変更する間、フィクスチャはバックグラウンドで実行されます。これはどうすればできますか?私が欲しいものバックグラウンドで実行されるフィクスチャを使用してpythonでstdoutとstderrをキャプチャする方法
def test_1():
blah
blah
print('Some msg')
blah
assert something, assert_msg
Output:
Some msg (if assert fails, then assertion error too)
はあなたがsys.stdout
かprint
のいずれかを再定義することなく、モジュール内からの標準出力をキャプチャすることはできません
@fixture
def logger():
capture stdout, stderr
custom_msg = cust_msg(stdout, stderr)
print(custom_msg)
def test_1(logger):
blah
blah
print('Some msg')
blah
assert something, assert_msg
Output:
Custom msg (if assert fails, then custom assertion error too)