跳转至

pytest.ini

🚁 pytest + jaydebeapi

pytest运行,用例调用jaydebeapi库时,日志出现Windows fatal exception等一大串报错。

虽然不影响运行,但影响看日志体验。

具体原因分析

解决方法:在pytest.ini中配置addopts = -p no:faulthandleraddopts也可配置其他默认运行参数。

🚁 设置告警过滤

[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