| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- #!/usr/bin/env python3
- """
- 一键跑通测试
- 1. 本地接口 pytest(21+ 条,不依赖 QiWe 真实 guid)
- 2. QiWe 真实联调(需 .env 中 QIWEI_TOKEN + QIWEI_GUID)
- 3. 生成 report.html
- 用法(先确保 backend 已 pnpm dev):
- cd backend/tests_python
- python run_all.py
- """
- from __future__ import annotations
- import subprocess
- import sys
- from pathlib import Path
- from load_env import load_backend_env
- ROOT = Path(__file__).resolve().parent
- def main() -> int:
- env = load_backend_env()
- token_ok = bool(env.get('QIWEI_TOKEN'))
- guid = env.get('QIWEI_GUID', '').strip()
- room_ids = [x.strip() for x in env.get('QIWEI_ROOM_IDS', '').split(',') if x.strip()]
- print('=' * 60)
- print('Lami 接口一键测试')
- print('=' * 60)
- print(f' QIWEI_TOKEN: {"已配置" if token_ok else "未配置"}')
- print(f' QIWEI_GUID: {guid if guid else "未配置(真实 QiWe 联调将跳过)"}')
- print(f' QIWEI_ROOM_IDS: {len(room_ids)} 个群' if room_ids else ' QIWEI_ROOM_IDS: 未配置')
- if token_ok and not guid:
- print()
- print(' 提示: Token 已生效,但拉群/同步消息还需要设备 GUID。')
- print(' 请打开 https://manager.qiweapi.com/nodes 复制设备 ID,写入 backend/.env:')
- print(' QIWEI_GUID=你的设备ID')
- print(' 然后重新运行: python run_all.py')
- print('=' * 60)
- cmd = [
- sys.executable,
- '-m',
- 'pytest',
- '-v',
- '--html=report.html',
- '--self-contained-html',
- '-m',
- 'integration',
- ]
- if guid:
- cmd.extend(['-m', 'integration or qiwei_live'])
- print('(含 QiWe 真实联调:test_13~test_17,使用 QIWEI_ROOM_IDS 登记群)\n')
- else:
- print('(本次仅跑本地集成测试,不含 QiWe 真实数据用例)\n')
- result = subprocess.run(cmd, cwd=ROOT)
- print()
- if result.returncode == 0:
- print(f'全部通过。报告: {ROOT / "report.html"}')
- else:
- print(f'存在失败用例,请查看上方日志。报告: {ROOT / "report.html"}')
- return result.returncode
- if __name__ == '__main__':
- raise SystemExit(main())
|