이런 플라스크 앱이 있습니다
from flask import Flask
import logging
app = Flask(__name__)
@app.route('/')
def catch_all():
logging.warning("I'm a warning")
return "This is a REST API"
if __name__ == '__main__':
app.run(host='0.0.0.0', port=8080, debug=True)
실행하면 로그에 WARNING이 표시됩니다.
WARNING:root:I'm a warning
그런 다음 다음과 같은 테스트를 만듭니다.
import fulfillment
def test_index():
fulfillment.app.testing = True
client = fulfillment.app.test_client()
r = client.get('/')
assert r.status_code == 200
assert 'This is a REST API' in r.data.decode('utf-8')
를 사용하여 테스트를 실행할 때 테스트 pytest
중인 함수의 로그 메시지를 볼 수 없습니다. 내가 발견 나는 일반 인쇄 출력이 pytest 실행 중에 만들어 볼 수있는 방법? , 비슷하게 들리지만 pytest -s
옵션이 작동하지 않으며 실제로 테스트중인 함수가 아닌 테스트 함수의 출력에 대해 말하는 것 같습니다.
테스트중인 함수의 로그를 어떻게 볼 수 있습니까?
이것이 원인 일 수 있습니다. pytest.ini
설정으로 만들기 만하면 됩니다.
[pytest]
log_cli=true
log_level=NOTSET
잘 작동합니다.
pytest test_my.py
# ...
-------------------------------- live log call ---------------------------------
fulfillment.py 37 WARNING I'm a warning
PASSED [100%]
=========================== 1 passed in 0.09 seconds ===========================
또한 log_format
, log_date_format
및 기타 옵션을 설정할 수 있습니다.
도움이 되었기를 바랍니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다