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

Jenkins发布制品异常:测试结果目录无法在Jenkins中显示

问题排查与解决建议

1. 目录权限细节问题

虽然test-results属于pipeline用户组,但要确认目录本身的权限是否允许Jenkins代理用户访问:

  • 检查目录权限:在EC2节点执行 ls -ld test-results,确保pipeline组或其他用户拥有读+执行权限(至少r-x)。如果权限是drwx------,即便Jenkins用户在pipeline组内也无法读取目录内容。
  • 修复权限:执行 chmod g+rx test-results 给组添加读和执行权限,或根据企业安全策略执行 chmod o+rx test-results 开放其他用户权限。

2. Jenkins工作区同步与路径验证

Jenkins代理可能未实时同步宿主机目录变化,或工作区路径存在偏差:

  • 确认路径一致性:检查你在EC2节点查看的test-results目录,是否确实在当前流水线的Jenkins工作区内(部分场景下Jenkins会使用临时工作区或符号链接)。
  • 手动验证可见性:在流水线的发布阶段前添加ls -la命令,列出工作区所有内容,确认Jenkins脚本层面能否看到test-results目录。如果脚本能看到但制品发布看不到,大概率是制品发布的路径配置错误。

3. Docker容器用户ID不匹配问题

test-results由容器内的pwuser创建,可能存在容器内用户与宿主机pipeline用户UID不匹配的情况:

  • 核对UID:容器内执行id pwuser,EC2节点执行id pipeline,确认两者UID是否一致。UID不匹配时,即便组相同,Jenkins代理用户也无法实际访问目录。
  • 解决方法:
    • 在Dockerfile中指定pwuser的UID与宿主机pipeline用户一致:RUN usermod -u <pipeline-UID> pwuser
    • 运行容器时直接使用宿主机pipeline用户ID:docker run -u $(id -u pipeline):$(id -g pipeline) ...

4. Jenkins制品发布路径配置错误

确认Jenkins归档制品的路径规则是否正确:

  • 如果使用archiveArtifacts步骤,需确保路径包含递归匹配,比如test-results/**,而非仅写目录名或单个文件路径。错误的路径配置会导致Jenkins只归档文件,不递归处理目录。
  • 示例正确配置:archiveArtifacts artifacts: 'test-results/**', fingerprint: true

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 02:55:00