You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 05:36:18