一个类似 pytest 的 html 报告

复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        table {
            border-collapse: collapse;
            width: 95%;
            margin: 0 auto;
        }
        table, th, td {
            border: 1px solid black;
        }
        .case-result {
            margin-top: 50px;
        }
        pre {
            white-space: pre-wrap;
            max-height: 600px;
            overflow: auto;
            font-size: 12px;
            background-color: #d7d7d7;
        }
        .hidden {
            display: none;
        }
    </style>

</head>
<body>
<table class="env">
    <thead>
        <tr>
            <th>配置名</th>
            <th>配置值</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>软件版本</td>
            <td>v1.0.0</td>
        </tr>
        <tr>
            <td>测试时间</td>
            <td>2025-10-20</td>
        </tr>
    </tbody>
</table>

<table class="case-result">
    <thead>
        <tr>
            <th>用例名称</th>
            <th style="width: 10%;">耗时(s)</th>
            <th style="width: 10%;">测试结果</th>
            <th>日志详情</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>用例1</td>
            <td>2</td>
            <td>成功</td>
            <td><button class="show_detail">显示/关闭详情</button></td>
        </tr>
        <tr class="detail hidden">
            <td colspan="4">
                <pre>
log
log
log
log
log
log
log
log
log
log
log
log
log
log
log
log
log
log
                </pre>
            </td>
        </tr>
                <tr>
            <td>用例2</td>
            <td>1</td>
            <td>成功</td>
            <td><button class="show_detail">显示/关闭详情</button></td>
        </tr>
        <tr class="detail hidden">
            <td colspan="4">
                <pre>
log
log
log
log
log
log
log
log
log
log
log
log
log
log
log
log
log
log
                </pre>
            </td>
        </tr>
    </tbody>
</table>
</body>
<script>
    let detail_btns = document.getElementsByClassName("show_detail")
    for(let btn of detail_btns){
        btn.addEventListener("click", ()=>{
            detail_elemnet = btn.parentNode.parentNode.nextElementSibling
            if(detail_elemnet.classList.contains("hidden")){
                detail_elemnet.classList.remove("hidden")
            }else{
                detail_elemnet.classList.add("hidden")
            }
        })
    }
</script>
</html>

显示效果

相关推荐
黑牛儿17 小时前
面试高频问题:从浏览器请求到PHP响应:完整流程拆解
android·后端·面试·php
前端老石人18 小时前
前端网站换肤功能的 3 种实现方案
开发语言·前端·css·html
y小花18 小时前
安卓USB服务概述
android·usb
alexhilton1 天前
Compose中初始加载逻辑究竟应该放在哪里?
android·kotlin·android jetpack
zh_xuan1 天前
启动RN服务端口被占用
android·react native
Code-keys1 天前
Android Codec2 Filter 算法模块开发指南
android·算法·音视频·视频编解码
我的xiaodoujiao1 天前
API 接口自动化测试详细图文教程学习系列11--Requests模块3--测试练习
开发语言·python·学习·测试工具·pytest
y = xⁿ1 天前
MySQL:count(1)与count(*)有什么区别,深分页问题
android·数据库·mysql
yivifu1 天前
手搓HTML双行夹批效果
前端·html·html双行夹注
程序员陆业聪1 天前
Android启动全景图:一次冷启动背后到底发生了什么
android