Skip to content

测试ayaka衍生插件

ayaka_test模拟了一个不需要连接真实qq账号的假cqhttp

目前的假cqhttp只提供了

  • send_msg
  • send_group_msg
  • send_group_forward_msg
  • send_private_msg
  • get_group_member_list
  • get_friend_list
  • ...

其他功能可以自行编写代码对ayaka_test进行增强!

已给出两个钩子函数供拓展使用

安装

pip install nonebot_plugin_ayaka_test

修改bot.py

# 其他加载插件的代码
# some code ....
# some code ....

nonebot.load_plugin("ayaka_test")

配置(可选,推荐)

你可以设置.env.prod.env.dev中的LOG_LEVEL=27

从而获得纯净的debug日志

通用命令

命令 功能
g <group_id> <user_id> <text> 伪造一条群聊消息
p <user_id> <text> 伪造一条私聊消息
d 0.1 延时0.1秒后空一行
s test 执行script/test.ini自动化脚本

自动化脚本

额外命令

命令 功能
after <cmd> 每一条命令执行后需额外执行的命令
# 注释(必须放在每一行的开头)

脚本示例

# 用于区分不同对话段(所有自动化脚本默认具有此条效果,无需专门书写)
# after d 0.1 

# 你可以使用如下语句关闭默认效果
# after 

# 开始测试
g 100 1 星际旅行
g 100 1 move 月球
g 100 1 hi

实现效果

"user" 说:星际旅行 "Bot" 说:[星际旅行] xing ji lv xing - 星际旅行/travel 启动盒子 [*] - 退出/exit 关闭盒子 - move 移动 - watch/看表演 看表演 [地球] - hi 打招呼 - drink 喝水 [月球] - hi 打招呼 - drink 喝水 [太阳] - hi 打招呼 - drink 喝太阳风 [售票处] - buy/买票 买门票 [火星] - 任意文字 令人震惊的事实 [沙城] - pick 捡金子 - change 修改捡金子配置 "user" 说:move 月球 "Bot" 说:前往 月球 "user" 说:hi "Bot" 说:你好,月球!

如何增强ayaka_test

虽然名义上是ayaka衍生插件的测试套件,然而其与ayaka没多少关系,可以直接拿去当nonebot插件的测试套件

不过,由于只模仿了几条功能,因此更多的还是适用于文字游戏插件的测试

在ayaka_test中,分别给出了两个钩子函数

  • fake_cq.on_cmd 编写自定义的终端命令
  • fake_cq.on_api 编写自定义的假cqhttp的api

具体编写可分别参考_cmd.py_api.py文件

通过它们为假cqhttp拓展更多功能吧

win10 fastapi reload卡死问题

测试套件可能会在特定情况下卡死,无法结束进程,从而占用测试端口

win10可尝试运行from ayaka_test import clean_port; clean_port()清理卡死的进程

仓库

ayaka_test

下一步

在这里~ ↘