首页/新闻资讯/正文详情

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

发布时间:2026/9/25 21:02:12 来源:云帆数科 栏目:资讯中心
Botty测试与发布实战:pytest自动化测试、smoke_test冒烟验证与build.py一键打包指南
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),仅供参考

相关推荐

CodeQL C 分析 1.19 改进全解:Autobuilder 构建定位、控制流图优化与新安全查询
CodeQL C 分析 1.19 改进全解:Autobuilder 构建定位、控制流图优化与新安全查询

静态分析SAST应用安全漏洞扫描代码质量 【免费下载链接】codeql CodeQL: the libraries and queries that power security researchers around the world, as well as code scanning in GitHub Advanced Security 项目地址: https://gitcode.com/gh_mirrors/co/code… · 2026/9/25 21:01:59

wifi密码
wifi密码

声明:本篇博客仅供各位进行安全研究和探讨使用,禁止用于违法用途插一个无线网卡,让他识别到wifi信号。否则是无法识别到wifi信号的可以识别wif信号之后会多一块网卡监听网卡查看监听状态 mon是监控的意思监控的时候又将网卡名称改了扫描一下有… · 2026/9/25 21:01:40

在Python编程中,`range`函数是构建循环、生成数字序列的核心工具,几乎贯穿所有涉及迭代、索引、步长控制的场景
在Python编程中,`range`函数是构建循环、生成数字序列的核心工具,几乎贯穿所有涉及迭代、索引、步长控制的场景

在Python编程中,range函数是构建循环、生成数字序列的核心工具,几乎贯穿所有涉及迭代、索引、步长控制的场景。从初学者的“for i in range(10)”到高级开发者的内存优化、算法实现,range的灵活性和高效性使其成为Python生态中不可或缺的基础… · 2026/9/25 21:01:16

银河麒麟 PXE 批量装机,从一台到一百台怎么搭
银河麒麟 PXE 批量装机,从一台到一百台怎么搭

一、搭之前先想清楚 机房进来 40 台同型号的机器,要求统一装麒麟,分区、主机名、装完要跑的 agent 全得一样。还按老办法一台台插 U 盘点下一步,一天装不完十台,还容易点错。所以搭 PXE。我搭的第一版,客户端开机屏幕上就卡在这一行: PXE-E53: No boot filename receiv… · 2026/9/25 21:37:20

银河麒麟系统整盘备份和异机还原怎么做
银河麒麟系统整盘备份和异机还原怎么做

一、备份之前先想清楚 备份命令敲下去五分钟就完了,真正的坑全在还原。 上周给一台跑了两年的麒麟业务机做整盘备份,dd 过去一路顺利,新机器开机却直接把我按住: error: unknown filesystem. Entering rescue mode... grub rescue>换台机器改用 rsync 再来一遍,数据… · 2026/9/25 21:37:20

Atlas 300V部署YOLO模型全流程实战:从环境搭建到性能调优
Atlas 300V部署YOLO模型全流程实战:从环境搭建到性能调优

1. 从一张“推理加速卡”说起:Atlas到底能干什么先回答被问得最多的那个问题:Atlas 300V 24G是运算加速卡吗?答案是肯定的,但它不是传统意义上的“训练卡”,而是一张目标非常明确的推理加速卡。它的使命不是像GPU那样既… · 2026/9/25 21:37:02

如何为AlphaGBM Skills配置API Key:账户额度、--confirm-usage审批机制与套餐完整指南
如何为AlphaGBM Skills配置API Key:账户额度、--confirm-usage审批机制与套餐完整指南

如何为AlphaGBM Skills配置API Key:账户额度、--confirm-usage审批机制与套餐完整指南 【免费下载链接】skills Bring realtime market data and research workflows into Claude Code, Cursor & beyond — 29 open-source Skills for stocks, options and comm… · 2026/9/25 21:36:55

需求未验证勿备货:TikTok出海Y型科学操盘法完整落地指南
需求未验证勿备货:TikTok出海Y型科学操盘法完整落地指南

【摘要】TikTok Shop 2025年全球GMV突破653亿美元,近70%新手跨境卖家首年受挫,亏损核心源于需求验证缺失而非执行不足。Y型科学操盘覆盖4个核心环节、5步验证流程、3条失效边界,为出海提供可复用的决策体系。核心关键词:Y型科学操… · 2026/9/25 21:36:42

论文定版依据全攻略:谁认下这版,凭什么算交出版
论文定版依据全攻略:谁认下这版,凭什么算交出版

改到自己也分不清哪一版算数,症结往往不在改得少,而在没人替这一版签过名。本文不排轮次,只谈两件事:谁有资格认下这一版、凭哪几样认,以及什么样的版本状态才够格交出去。以知学术AIPaperGPT的能力落点为例&#xff0… · 2026/9/25 21:36:36

数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)
数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31

创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战
创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31

MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX
MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:37

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码