本文档介绍了 sync_play_video 函数的单元测试,该测试从配置文件中读取真实的 Kodi 客户端配置和声音设置,确保测试更贴近实际使用场景。
test_sync.pyKodiServer.sync_play_video()config/config.yaml - 主配置文件(Kodi客户端配置)config/ButtonListenerTask.yaml - 声音配置文件kodi_clients:
- ip: 192.168.189.181
port: 8080
username: kodi
password: 123
- ip: 192.168.189.182
port: 8080
username: kodi
password: 123
# ... 更多客户端配置
video_paths:
- /sdcard/Movies/0.mp4
- /sdcard/Movies/硫酸钠.mp4
# ... 更多视频路径
sound:
client_index: 1 # 播放声音的客户端索引 (-1表示所有客户端)
volume: 85 # 音量 (0-100)
video_paths:
- /sdcard/Movies/0.mp4
# ... 视频路径列表
sound_client_index 设置正确的音量subTest 分别测试每个视频路径python test_sync.py
python -m unittest test_sync.TestSyncPlayVideoWithConfig.test_config_file_loading
python -m unittest test_sync.TestSyncPlayVideoWithConfig -v
开始运行sync_play_video函数单元测试(从配置文件读取配置)...
======================================================================
test_config_file_loading ... ok
test_sync_play_video_all_config_videos ... ok
test_sync_play_video_client_failure_with_config ... ok
test_sync_play_video_invalid_sound_client_index_with_config ... ok
test_sync_play_video_no_clients ... ok
test_sync_play_video_with_config_clients_success ... ok
test_sync_play_video_with_config_sound_settings ... ok
test_sync_play_video_with_real_config_integration ...
集成测试完成:
- 测试客户端数量: 5
- 声音客户端索引: 1
- 默认音量: 85
- 测试视频: /sdcard/Movies/0.mp4
ok
----------------------------------------------------------------------
Ran 8 tests in 0.113s
OK
======================================================================
测试完成!
运行测试数量: 8
失败数量: 0
错误数量: 0
config/config.yaml 和 config/ButtonListenerTask.yaml 存在time.sleep() 以加速执行错误:配置文件 config/config.yaml 不存在
解决方案: 确保配置文件存在且路径正确
yaml.scanner.ScannerError: ...
解决方案: 检查 YAML 文件格式,确保语法正确
test_sync_play_video_all_config_videos ... skipped '配置文件中没有客户端配置'
解决方案: 检查配置文件中是否有 kodi_clients 配置
这个测试套件提供了全面的 sync_play_video 函数测试,通过从配置文件读取真实设置,确保测试更贴近实际使用场景。测试覆盖了正常流程、异常处理、边界条件等各种情况,为代码质量提供了可靠保障。