* 让 CI 真正跑起三类测试并修掉挡路的测试缺陷 之前 CI 只跑了一小部分,Java 那边的测试被 pom 里的开关整个跳过了。 这条把它打开,并补上 MySQL、Redis 两个容器,Java、契约、Python 三类 测试都在 CI 里真跑起来。 另外修了两个挡路的地方:一条 Java 用例单跑会因为实体信息没注册而报错, 现在自己注册;Python 的假网络层把整个 httpx 类换掉了,第三方库拼请求 时报错,改成只换发请求那一步。 * 给 runner 补上 libopus,修掉音频用例报错 opuslib_next 是 ctypes 绑定,真正编解码靠系统里的 libopus。runner 上默认 没有,import 失败后测试里换上的是自己写的桩,桩里的编码器只有构造方法, 一调就报错。正式镜像里是装了这个库的,CI 少了这一步。 顺手把桩的报错改成一句人话,别再让人对着缺方法的报错猜根因。 * 本地没起库也能构建,CI 里集成测试不许跳过 三个要连 MySQL 和 Redis 的集成测试加了守卫:依赖连不上就整类跳过,日志写明缺什么,构建照样是绿的;CI 上依赖不通就直接失败。另外加了一个门禁检查脚本和 CI 步骤,盯住这三个类有没有真跑,守卫哪天手滑把它们全跳过了,CI 必须变红。README 里补了本地怎么起依赖、怎么只编译不跑测试。
44 lines
1.2 KiB
Markdown
44 lines
1.2 KiB
Markdown
本文档是开发类文档,如需部署小智服务端,[点击这里查看部署教程](../../README.md#%E9%83%A8%E7%BD%B2%E6%96%87%E6%A1%A3)
|
|
|
|
# 项目介绍
|
|
|
|
manager-api 该项目基于SpringBoot框架开发。
|
|
|
|
开发使用代码编辑器,导入项目时,选择`manager-api`文件夹作为项目目录
|
|
|
|
# 开发环境
|
|
JDK 21
|
|
Maven 3.8+
|
|
MySQL 8.0+
|
|
Redis 5.0+
|
|
Vue 3.x
|
|
|
|
# 接口文档
|
|
启动后打开:http://localhost:8002/xiaozhi/doc.html
|
|
|
|
# 跑测试
|
|
测试分两种:纯单元测试,和要真连 MySQL、Redis 的集成测试(`DeviceTest`、`loginControllerTest`、`ModelConfigPersistenceTest`)。
|
|
|
|
集成测试需要先起好 MySQL 8 和 Redis 8。没起的时候这类测试整类跳过,不会让构建变红,日志里会写明缺的是哪个依赖。CI 上不一样:依赖连不上就直接让构建失败,不许跳过,免得门禁被悄悄掏空。
|
|
|
|
本地用 Docker 起这两个依赖:
|
|
|
|
```bash
|
|
docker run -d --name xiaozhi-mysql -p 3306:3306 \
|
|
-e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=xiaozhi_esp32_server mysql:8.0
|
|
docker run -d --name xiaozhi-redis -p 6379:6379 redis:8.0
|
|
```
|
|
|
|
跑全部测试:
|
|
|
|
```bash
|
|
mvn -B test -DskipTests=false
|
|
```
|
|
|
|
只想编译、不跑测试:
|
|
|
|
```bash
|
|
mvn -B package -DskipTests=true
|
|
```
|
|
|