You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过命令行构建Unity AQA PlayMode测试的UnityTestRunner APK?

如何通过命令行生成UnityTestRunner的Android测试APK(用于CI/CD流水线)

我正在使用「Automated QA」包(AQA)为游戏录制Unity PlayMode测试,目前能在编辑器或已连接的Android设备上运行测试,但无法通过命令行生成UnityTestRunner的.apk安装包,需要实现该功能以用于CI/CD流水线,自动构建安装包并在本地或云端多台Android设备上测试。

当前已实现的操作

  • 生成录制文件.json并导出完整测试用例
  • 可在Unity编辑器的Test Runner窗口中运行选中的PlayMode测试(支持编辑器内及Android设备)
  • 可通过PowerShell命令行启动测试:
$process = Start-Process -NoNewWindow -Wait -PassThru "C:\Program Files\Unity\Hub\Editor\2020.3.26f1\Editor\Unity.exe" `
    -ArgumentList `
    "-logFile testLogFile.log`
    -projectPath ./MyGame/ `
    -testResults testResults/results.xml `
    -runTests `
    -testPlatform PlayMode "

将-testPlatform PlayMode替换为-testPlatform Android即可在已连接的Android手机上运行测试。

需求痛点

能在Unity编辑器中通过「TestRunner -> BuildAllTests (Android)」手动构建测试APK,但不知道如何通过命令行实现该操作。

思路更新

了解到Unity部分GUI操作可通过EditorApplication.ExecuteMenuItem脚本化,不确定是否可用于自动化构建测试运行器APK。


解决方案:通过命令行调用自定义编辑器脚本实现构建

步骤1:编写自定义编辑器脚本

在项目的Assets/Editor目录下创建BuildTestApk.cs脚本,内容如下:

using UnityEditor;

public class BuildTestApk
{
    [MenuItem("Tools/BuildAndroidTestApk")]
    public static void BuildAndroidTestApk()
    {
        // 调用Test Runner的BuildAllTests (Android)菜单项
        EditorApplication.ExecuteMenuItem("Window/General/Test Runner/PlayMode/BuildAllTests (Android)");
        
        // CI/CD场景下,可添加自动退出逻辑
        // EditorApplication.Exit(0);
    }
}

注意:菜单项路径需与Unity编辑器中Test Runner的实际路径完全匹配,不同Unity版本可能略有差异,可通过Window -> General -> Test Runner菜单确认准确路径。

步骤2:通过命令行执行构建

使用PowerShell运行以下命令,Unity会启动并执行自定义脚本完成测试APK的构建:

$process = Start-Process -NoNewWindow -Wait -PassThru "C:\Program Files\Unity\Hub\Editor\2020.3.26f1\Editor\Unity.exe" `
    -ArgumentList `
    "-logFile testLogFile.log`
    -projectPath ./MyGame/ `
    -executeMethod BuildTestApk.BuildAndroidTestApk `
    -quit"

关键参数说明:

  • -executeMethod BuildTestApk.BuildAndroidTestApk:指定要执行的编辑器静态方法
  • -quit:构建完成后自动关闭Unity,适合CI/CD无人值守场景

额外优化建议

  • 若需自定义APK输出路径,可在脚本中扩展逻辑,结合PlayerSettings配置或BuildPipeline.BuildPlayerAPI实现,也可提前在Unity项目设置中固定输出目录
  • 在CI/CD流水线中,可将构建后的APK路径设为环境变量,后续直接用于分发到本地或云端多台Android设备执行测试

内容的提问来源于stack exchange,提问作者mcExchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 21:01:20