乐于分享
好东西不私藏

用 AI Agent 做 BDF 日常测试:OpenClaw + BDFAutotest 实战

用 AI Agent 做 BDF 日常测试:OpenClaw + BDFAutotest 实战

缘起

我是 BDF 的开发者,同时也是 OpenClaw(一个开源 AI Agent 平台)的用户。

在日常开发中,每次提交代码后最麻烦的事就是手动跑测试——编译、等结果、对结果、记录问题。尤其是当代码涉及到多模块耦合时,漏检一个 regression 是常有的事。

最近我把 BDFAutotest 和 OpenClaw 结合起来,实现了代码更新自动触发测试、结果自动推送的流程。本文就是这个玩法的实战分享。

01

BDFAutotest 是什么?

BDFAutotest 是一个专门用来做 BDF 自动化编译与测试的 AI Agent,协助维护 BDF 的日常开发工作。它的核心功能:

一条命令搞定完整测试流程:

git clone  https://github.com/bingbingsuo/BDFAutotest.git
cd BDFAutotest
python3 -m src.orchestrator --config config/config.yaml

02

我的用法:OpenClaw Agent 调度

我通过 OpenClaw 来调度 BDFAutotest,核心逻辑:

每天定时触发 → 检查代码是否更新 →
无更新 → 跳过测试,发送通知
有更新 → 启动编译 + 完整测试 → 推送报告

自动化带来的变化:

- 不用每天手动登录集群跑测试 

- 代码有更新才测试,节省计算资源 

- 测试结果自动推送到手机,随时掌握状态 

- 每次结果自动归档,方便回溯

03

实际效果

以我最近的测试为例:

推送效果:

�� BDF 测试报告 - hdf5-chkfil-primary
提交:51c0eac
结果:150/160 通过 ✅
失败:10 个(已知问题)
编译:Intel ifx + MKL

开发者不需要登录服务器,在手机上就能看到今天有没有引入新问题。

04

开发者如何使用?

快速上手

# 1.克隆仓库

git clone https://github.com/bingbingsuo/BDFAutotest.git
cd BDFAutotest

# 2.安装依赖

pip install -r requirements.txt

# 3.配置(编辑 config/config.yaml)

#   - 设置 git 仓库地址和分支

#   - 选择编译器(gnu/intel/llvm)

#    - 配置数学库路

#   - 设置hdf5路径  

# 4.运行

python3 -m src.orchestrator --config config/config.yaml

常用选项

#仅跑 smoke 测试(快速验证)

python3 -m src.orchestrator --config config.yaml --profile smoke

#跳过编译,仅运行测试

python3 -m src.orchestrator --config config.yaml --skip-build

#单独测试某个用例

python3 -m src.orchestrator run-test test004

进阶:接入 AI Agent

如果想实现我这样的自动调度流程,需要:

1. 部署一个 OpenClaw Agent 

2. 配置定时任务(每天自动检查) 

3. 对接飞书/钉钉等 IM 推送报告

具体实现可以参考 BDFAutotest 仓库中的 AI_AGENT_INTEGRATION.md 文档。

05

适用场景

BDFAutotest + AI Agent 特别适合:

1. 日常开发

— 每次 push 后自动跑测试,第一时间发现 regression

2. 多人协作

— 不同开发者提交后自动测试,结果统一归档

3. 版本发布前

— 完整回归测试,确保发版质量

4. 长期维护

— 记录每次测试历史,追溯问题来源

06

总结

BDFAutotest 解决的是一个很实际的问题:让代码质量检查变成可持续的日常流程,而不是每次发版前的手忙脚乱。

配合 AI Agent 使用,进一步减少了人工干预——代码更新了自动测试,有问题自动通知,结果自动归档。这对于长期维护一个大型量子化学软件包的团队来说,是实实在在的效率提升。

相关链接:

- BDFAutotest:

https://github.com/bingbingsuo/BDFAutotest

- BDF 主站:

https://bdf-manual.readthedocs.io/zh-cn/latest/

欢迎大家试用,有问题可以在 GitHub 上提 Issue,也欢迎提交 PR 完善这个工具!

作者注:本文仅作为技术分享,不涉及任何商业合作。作者是 BDF 的长期用户和贡献者,也是 OpenClaw 的活跃使用者。如果你也有好的开发实践,欢迎交流。