我正在运行一个测试:
pytest --capture=no --verbose --rootdir=testing/ testing/tests/docker_test.py
from /home/user/development/
。该测试检查某些容器是否正在运行,并使用 Python 3.6 的默认日志记录框架。测试文件内的记录器配置如下:
logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)
logging.basicConfig(level=logging.INFO, stream=sys.stdout, format="%(asctime)s %(levelname)s %(message)s")
在测试中我使用记录器如下:
logger.info(f"TEST SUCCESSFUL: container {container_name} is running")
logger.info(f"TEST SUCCESSFUL: all required containers are running")
Inside testing
(根目录)我有一个文件pytest.ini
:
[pytest]
log_level = INFO
log_cli_level = INFO
log_format = %(asctime)s %(levelname)s %(message)s
log_cli_format = %(asctime)s %(levelname)s %(message)s
log_date_format = %H:%M:%S
log_cli_date_format = %H:%M:%S
基本上我不希望任何日期出现在时间戳中,并且我希望 pytest 在运行测试时实时记录到命令行。
一方面我想知道什么asctime
代表。它看起来像“ascii 时间”。我不需要标准化的时间戳,而是我在pytest.ini
。这就是为什么我也尝试使用date
, datetime
and timestamp
, 代替asctime
,都会导致错误。所以我猜asctime
是获取时间戳的唯一方法。
然而,pytest似乎忽略了我在我的文件中设置的所有选项pytest.ini
文件,尽管它表明它在我运行测试时找到了该文件:
cachedir: testing/.pytest_cache
rootdir: /home/user/development/testing, inifile: pytest.ini
如何更改 pytest 日志记录中的时间戳?