Skip to content

xfengyin/UHTF

Repository files navigation

CI Release CodeQL License: MIT

Universal Hardware Test Framework (UHTF)

Python Go License

统一硬件测试框架 - 支持多种硬件平台的自动化测试框架

🌟 核心特性

  • 多平台支持: Arduino, Raspberry Pi, ESP32, STM32等
  • 插件架构: 轻松扩展新硬件平台
  • 自动化测试: 一键运行完整测试套件
  • 报告生成: HTML/JSON/PDF格式测试报告
  • Python + Go: 灵活性与性能完美结合

🚀 快速开始

安装

pip install uhtf

基础用法

from uhtf.core import TestFramework
from uhtf.plugins.arduino import ArduinoPlugin

# 初始化框架
framework = TestFramework()

# 添加Arduino插件
framework.add_plugin(ArduinoPlugin(port="/dev/ttyUSB0"))

# 运行测试
results = framework.run_tests()

# 生成报告
framework.generate_report(results, format="html")

📁 项目结构

UHTF/
├── src/python/uhtf/     # Python核心框架
│   ├── core.py          # 主框架
│   ├── plugin_manager.py # 插件管理
│   └── report_generator.py # 报告生成
├── src/go/              # Go性能模块
│   └── main.go          # 高性能串口通信
├── plugins/             # 硬件插件
│   ├── arduino/         # Arduino支持
│   └── raspberry_pi/    # 树莓派支持
├── tests/               # 测试用例
└── examples/            # 使用示例

🔌 支持的平台

平台 状态 功能
Arduino 串口通信、GPIO测试、模拟读取
Raspberry Pi GPIO控制、I2C/SPI通信
ESP32 🔄 开发中
STM32 🔄 计划中

💡 使用示例

Arduino测试

from uhtf.core import TestFramework
from uhtf.plugins.arduino import ArduinoPlugin

framework = TestFramework()
arduino = ArduinoPlugin(port="/dev/ttyUSB0", baudrate=115200)
framework.add_plugin(arduino)

# 运行基础测试
results = framework.run_tests(test_suite="basic")

# 运行完整测试套件
results = framework.run_tests(test_suite="comprehensive")

Raspberry Pi测试

from uhtf.plugins.raspberry_pi import RaspberryPiPlugin

rpi = RaspberryPiPlugin()
framework.add_plugin(rpi)
results = framework.run_tests()

📊 测试报告示例

框架自动生成详细的测试报告:

测试报告 - 2026-03-05
================================
平台: Arduino
测试套件: basic

✅ 串口通信测试 - 通过 (0.5s)
✅ GPIO引脚测试 - 通过 (1.2s)  
✅ 模拟读取测试 - 通过 (0.8s)

总计: 3/3 通过

🤝 贡献

欢迎贡献代码!请查看 贡献指南

📄 许可证

MIT License - 详见 LICENSE

📧 联系方式


为硬件开发者打造的测试框架 ❤️

About

通用硬件测试框架 - 支持多种硬件平台的自动化测试

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages