pytest.ini
🚁 pytest + jaydebeapi
pytest运行,用例调用jaydebeapi库时,日志出现Windows fatal exception
等一大串报错。
虽然不影响运行,但影响看日志体验。
解决方法:在pytest.ini
中配置addopts = -p no:faulthandler
,addopts
也可配置其他默认运行参数。
🚁 设置告警过滤
[pytest]
filterwarnings =
error
ignore::UserWarning # 除UserWarning,其他的告警升级为error
🚁 指定日志格式
[pytest]
; 指定日志格式为:日期 日志级别 日志内容
; -8s代表长度为8个字符,不足时以空格补全
log_format = %(asctime)s %(levelname)-8s %(message)s
log_date_format = %Y-%m-%d %H:%M:%S
🚁 自定义标签
定义标签@pytest.mark.slow
,用于标记运行时间较长的测试用例。
搭配python -m not slow
使用,只需在pytest.ini注册标签即可。
若要使其在运行测试用例时,除非明确指定,否则默认跳过这些慢速用例,则还需使用钩子方法。
def pytest_collection_modifyitems(items):
config = items[0].session.config # 获取pytest配置对象
if not config.getoption("--runslow"): # 检查命令行选项中是否包含了 --runslow
skip_slow = pytest.mark.skip(reason="need --runslow option to run")
for item in items:
if "slow" in item.keywords:
item.add_marker(skip_slow) # 添加 skip 标签以跳过该测试用例
@pytest.mark.slow
def test_long_running():
pass
[pytest]
markers =
slow: 运行时间较长的测试用例
现在运行pytest时,默认情况下所有带有@pytest.mark.slow
标签的用例都会被跳过。
若要运行这些慢速用例,则通过参数--runslow
来指定,即pytest --runslow
。