UE4.25 Gauntlet测试在Jenkins中运行失败求助
问题核心分析
从你的错误日志能一眼看到根源:第一条警告显示插件的csproj文件在尝试引用相对路径的Gauntlet项目(\Engine\Source\Programs\AutomationTool\Gauntlet\Gauntlet.Automation.csproj),但这个相对路径在Jenkins的执行上下文里没解析到正确的UE引擎目录。终端手动运行正常是因为你的终端会话有正确的工作目录、环境变量,而Jenkins的服务进程不具备这些条件。
可能的原因及对应解决方案
我整理了几个亲测有效的解决方向,你可以逐一尝试:
给Jenkins配置UE引擎的环境变量
终端里能正常运行,大概率是你当前用户的环境变量里有UE4_ROOT(指向C:\UnrealEngine4-25),但Jenkins服务默认不会继承用户的环境变量。你可以在Jenkins的构建步骤开头添加:set UE4_ROOT=C:\UnrealEngine4-25或者直接在Jenkins全局系统设置里添加这个环境变量,让所有任务都能用到。
修正命令中的路径格式并指定工作目录
注意到Jenkins执行的命令里,项目路径把反斜杠改成了斜杠(HVS_Game/HVS.uproject),虽然Windows兼容,但容易让UAT的路径解析逻辑混乱。同时,Jenkins的默认工作目录可能和你手动运行时不一样,建议在命令前先切换到项目根目录:cd C:\Users\Jenkins\AppData\Local\Jenkins.jenkins\workspace\HVS_Game && "C:\UnrealEngine4-25\Engine\Build\BatchFiles\RunUAT.bat" RunUnreal -project="C:\Users\Jenkins\AppData\Local\Jenkins.jenkins\workspace\HVS_Game\HVS.uproject" -scriptdir="C:\Users\Jenkins\AppData\Local\Jenkins.jenkins\workspace\HVS_Game" -platform=Win64 -configuration=Development -build=editor -test="DaedalicTestAutomationPlugin.Automation.DaeGauntletTest"检查Jenkins运行用户的权限
Jenkins默认用Local System账户运行,这个账户可能没有访问UE引擎目录的权限。你可以打开服务管理器,找到Jenkins服务,右键属性→登录,改成有引擎目录读写权限的本地用户(比如你平时手动运行命令的那个用户),重启Jenkins后再测试。确保插件的csproj引用路径正确
打开DaedalicTestAutomationPlugin.Automation.csproj,检查里面对Gauntlet项目的引用是不是绝对路径。如果是相对路径,改成绝对路径:<ProjectReference Include="C:\UnrealEngine4-25\Engine\Source\Programs\AutomationTool\Gauntlet\Gauntlet.Automation.csproj" />这样不管在哪个上下文运行,都能找到依赖项目。
验证小技巧
可以先在Jenkins构建步骤里加两条调试命令,排查问题:
rem 打印当前工作目录 cd rem 打印所有环境变量,检查有没有UE4_ROOT set
通过输出就能确认工作目录和环境变量是否符合预期。
内容的提问来源于stack exchange,提问作者Ryan Glenn

