为何Pytest HTML报告的结果表格中不显示测试用例?
问题解决:Pytest HTML报告无测试用例和环境信息
测试用例未显示的原因及解决
你的测试用例没出现在报告里,核心问题是fixture定义的位置不对:你把setup fixture放在了测试类TestReports内部作为实例方法,而Pytest默认不会识别类内部定义的实例方法fixture——Pytest会在模块级别、conftest.py或者用@pytest.mark.usefixtures标记的位置查找fixture,类内部的实例方法fixture无法被自动发现。
解决方法很简单,把fixture移到测试类外面(模块级别):
import pytest import time # 将fixture移到模块级别 @pytest.fixture def setup(): pass class TestReports: def test_1(self, setup): time.sleep(2) assert True def test_2(self, setup): time.sleep(2) assert False
这样Pytest就能正确找到setup fixture,测试用例也会被正常执行并显示在报告的结果表格中。
环境信息缺失的原因及解决
环境信息缺失是因为新版pytest-html依赖pytest-metadata插件来收集环境数据,如果没安装这个插件,报告就不会显示环境信息。
执行以下命令升级并安装依赖插件:
pip install --upgrade pytest-html pytest-metadata
验证执行
重新运行你的命令:
python -m pytest -v -s --html=report.html --self-contained-html test_pytest.py
此时报告里应该会显示两个测试用例的执行结果(一个通过、一个失败),同时在报告底部出现环境信息板块,包含Python版本、Pytest版本、插件版本等内容。
内容的提问来源于stack exchange,提问作者LeeBron
相关产品推荐
相关产品推荐

