首页 / 资讯中心 / 文章详情

Botty测试与发布实战:pytest自动化测试、smoke_test冒烟验证与build.py一键打包指南

Botty测试与发布实战:pytest自动化测试、smoke_test冒烟验证与build.py一键打包指南 ★ FEATURED ARTICLE
Botty测试与发布实战pytest自动化测试、smoke_test冒烟验证与build.py一键打包指南【免费下载链接】bottyD2R Pixel Bot项目地址: https://gitcode.com/gh_mirrors/bo/bottyBotty是一款专为《暗黑破坏神2重制版》(D2R) 打造的 Python 像素机器人Pixel Bot支持自动化刷宝、打Boss、开箱子与宝石转化。本文面向新手完整讲解Botty 测试与发布实战如何用 pytest 跑通test/镜像目录里的自动化测试、smoke_test.py冒烟测试的原理以及build.py一键打包出可分发的main.exe。为什么发布前要先跑测试Botty 的核心依赖图像模板匹配与OCR 识别如识别物品名字、找到城镇传送点任何一次对src/源码的改动都可能悄悄破坏识别逻辑。作者在 development.md 中明确约定所有自动化测试都放在test/文件夹内文件与目录结构刻意模仿src/目录。也就是说src/bn ip/有测试test/nip/就有对应的测试src/transmute/有测试test/transmute/也同步存在。这种镜像目录设计让你一眼就能找到某个模块的测试在哪里。pytest 一键运行测试环境如何自动生效在仓库根目录的 pytest.ini 中测试环境被配置得非常无感[pytest] env PYTHONPATH./src RUN_ENVtest python_paths ./src这带来三个好处无需手动配路径src/自动加入PYTHONPATH测试里可以直接import bot、import template_finder模拟真实屏幕像 test/mocks/screen_mock.py 这样的ScreenMock类会用本地截图代替grab()截屏让机器人在没有游戏的情况下也能被测试测试资源自动下载部分测试导入 test/utils/download_test_assets.py 会自动拉取test/assets/下的样本图无需手动准备。常用测试命令速查命令作用pytest -s -v运行全部测试-s显示 stdout-v输出更详细pytest test/smoke_test.py只运行冒烟测试pytest test/nip/test_transpile.py只跑 BNIP 物品词法转译测试python src/pickit.py部分模块可单独执行做手动测试见 development.md测试都覆盖了哪些核心能力模板匹配test/template_finder_test.py 验证search、best_match、search_all三种匹配模式能否在截图里准确定位空储物格、交叉/斜线等模板BNIP 拾取逻辑test/nip/ 目录下的test_transpile.py、test_get_ground_loot.py等用例用 ExpressionTest 数据类批量校验物品表达式 → 拾取/保留决策是否正确转化与库存test/transmute/ 覆盖宝石挑选与背包整理逻辑目标检测test/target_detect_test.py 验证怪物/BOSS 的瞄准点计算。smoke_test.py最省心的启动级冒烟测试打开 test/smoke_test.py你会发现整个冒烟测试只有寥寥几行screen ScreenMock(test/assets/hero_select.png) game_stats GameStats() bot Bot(game_stats)它的目标很简单导入 Bot 并创建实例确保没有出现缩进错误、缺失依赖等重大问题。配合Logger.init()初始化日志一次通过的冒烟测试就能保证所有import链路完整bot、game_stats、template_finder均可正常加载核心类可以正常实例化状态机初始化不抛异常。这是每次提交前成本最低的体检推荐养成pytest test/smoke_test.py的习惯。build.py 一键打包从源码到 main.exeBotty 使用PyInstaller将 Python 源码打包为单文件exe。根目录的 build.py 把整个流程封装成一条命令配合 environment.yml 中声明好的 conda 环境Python 3.10、opencv、tesseract 等依赖即可使用。发布新版本的完整步骤# 用 x.x.x 指定版本号创建 new-release 分支、更新 src/version.py、打包、提交 python build.py x.x.xbuild.py 内部依次完成了这些脏活版本管理读取并改写 src/version.py自动git checkout -b new-release-vx.x.x创建发布分支清理删除旧的build/、*.spec与botty_vx.x.x输出目录保证产物干净编译对src/main.py与src/shopper.py分别执行pyinstaller --onefile打包资源整理把 config/ 下的game.ini、params.ini、shop.ini、default.bnip和整个 assets/ 模板目录复制到发布文件夹并生成空模板custom.ini提交自动git add .并打上 Bump version to vx.x.x 的提交信息。实用参数一览参数说明-v / --version 0.4.2指定新版本号自动建分支并更新版本号-c / --conda_path指定本地 miniconda 路径默认C:\Users\用户名\miniconda3-r / --random_name给main.exe生成一个 6~14 位的随机文件名-k / --use_key使用 Fernet 加密密钥进行构建Windows 用户还可以双击 run.bat 进入菜单式操作选项3 - Compile即等价于执行python ./build.py选项4 - Run则是直接conda activate botty python src/main.py从源码运行。打包完成后的验证小技巧发布包不只是能跑还要确认图形配置正确。Botty 内置Graphic Debugger 模式启动后按F10打开调试窗口进图后能看到模板匹配画出的蓝色圆圈与置信度分数地上丢物品时匹配项会显示红色圆圈分数应稳定高于 0.9。最后查更新日志用作者推荐的命令即可git log PREVIOUS_TAG..HEAD --oneline --decorate总结改完代码→ 先跑pytest test/smoke_test.py冒烟再pytest -s -v全量回归新增功能→ 按test/镜像src/的目录约定补上对应测试准备发布→ 一条python build.py x.x.x完成版本分支、打包、资源整理与提交发布验证→ 用 F10 图形调试器确认模板识别分数再更新 changelog。掌握这套pytest 测试 smoke_test 冒烟 build.py 一键打包的流程你就能像维护者一样自信地构建和发布 Botty 了。【免费下载链接】bottyD2R Pixel Bot项目地址: https://gitcode.com/gh_mirrors/bo/botty创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
阅读完成 · 觉得有帮助?
咨询建站