et-test-run - 测试执行入口
何时使用
- 执行测试(全部 / 指定用例)。
- 查看测试日志、分析失败原因。
- 验证修改后的代码是否通过目标测试或回归测试。
不要加载
- 只是编写测试用例:用
et-test-write。 - 只是编译项目:用
et-build。
默认动作
- 先用
dotnet build ET.sln编译,除非用户明确只要看日志或已经完成编译。 - 运行测试前清理
Logs/,避免旧日志干扰。 - 服务端 / Hotfix 测试使用 WOW 现有测试入口:管道输入
Test命令到dotnet ./Bin/ET.App.dll --SceneName=Test。 - Unity Editor 测试使用 UnityBridge 的
UnityTestRunRequest,按Name正则匹配测试类名执行。 - Editor 测试不走 Unity Test Framework 的
Filter、ExecutionSettings或 Test Runner。 - 失败时先看控制台首个失败点;服务端测试再看
Logs/All.log,Editor 测试看 response 里的Message与Results[].Message。 - 服务端测试成功后也检查
Logs/All.log,确认没有隐藏异常或错误日志。 - 调试失败遵循先定位原因、再改代码;不要为了跑通测试随意修改正常业务逻辑。
常用命令
dotnet build ET.sln
Remove-Item ./Logs -Recurse -Force -ErrorAction SilentlyContinue
"Test" | dotnet ./Bin/ET.App.dll --SceneName=Test
"Test --Name=CreateRobot" | dotnet ./Bin/ET.App.dll --SceneName=Test
dotnet ./Bin/ET.UnityBridge.dll '{"_t":"Ping"}'
dotnet ./Bin/ET.UnityBridge.dll '{"_t":"UnityTestRunRequest","Name":".*"}'
Get-Content ./Logs/All.log -Tail 200
常见失败原因
| 现象 | 优先检查 |
|---|---|
| Entity 已失效 | await 后是否通过 EntityRef 重新获取 |
| 数据不一致 | 测试准备与配置链路 |
| 消息超时 | 网络消息发送、事件是否真的发布 |
| Fiber 未找到 | 场景或 Fiber 名称 |
| 未找到测试 | 类名、PackageType 前缀、测试目录 |
| Editor 测试未匹配 | Name 正则、类是否继承 ET.Test.ATestHandler、是否在 Scripts/Editor/Test/ |
找不到 UnityTestRunRequest |
Unity Editor 是否打开、UnityBridge 是否在线、是否执行过 Refresh |
| 配置不存在 | 测试是否自己用代码构造最小 Config 数据 |