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

Azure DevOps Server 2020中Allure Reports标签空白修复及自动化发布方案

解决Azure DevOps Server 2020中Allure报告空白问题

1. 修正AllureGenerate任务的YAML缩进

YAML对缩进敏感,你的任务配置中resultsDir和targetDir未正确缩进,会导致任务无法读取参数,修改后:

- task: AllureGenerate@1
  inputs:
    resultsDir: allure-results
    targetDir: allure-report/$(Build.BuildNumber)

2. 确保构建代理安装Allure CLI

AllureGenerate任务依赖代理上的Allure命令行工具,未安装会导致报告生成不完整:

  • Windows代理:使用Chocolatey安装 choco install allure,或手动下载Allure包并添加到系统PATH
  • Linux代理:执行以下命令安装
    sudo apt-add-repository ppa:qameta/allure && sudo apt update && sudo apt install allure
    

3. 添加AllurePublish任务关联报告到构建记录

仅生成报告文件不足以在Azure DevOps的Allure Reports标签显示,需添加扩展提供的Publish任务(确认你安装的Allure扩展包含此任务):

- task: AllurePublish@1
  inputs:
    reportDir: 'allure-report/$(Build.BuildNumber)'
    artifactName: 'AllureReport'
    publishPipeline: true

4. 验证扩展与Azure DevOps Server 2020兼容性

部分新版Allure扩展可能不兼容Azure DevOps Server 2020,可尝试降级到适配2020版本的扩展(查看扩展市场的版本说明)。


构建代理/AKS实现方案

构建代理侧

只需安装Allure CLI即可,无需额外插件,按上述步骤完成安装后,流水线即可正常生成报告。

AKS托管方案

若需持久化或共享报告,可将Allure报告部署到AKS:

  1. 在流水线中生成Allure HTML报告后,打包为基于Nginx的镜像(将报告复制到/usr/share/nginx/html)
  2. 推送镜像到Azure容器注册表(ACR)
  3. 在AKS中部署该镜像,创建Service和Ingress暴露外部访问地址
  4. 在Azure DevOps构建摘要中添加链接到Ingress地址,方便团队访问

WebApp容器显示JSON而非可视化报告的解决方法

allure-results是原始测试结果文件(JSON/XML),无法直接渲染为可视化报告,需生成HTML报告后托管,有两种方案:

方案1:流水线生成报告后部署到WebApp静态托管

  1. 在流水线中用AllureGenerate生成完整HTML报告:
    - task: AllureGenerate@1
      inputs:
        resultsDir: allure-results
        targetDir: allure-report/$(Build.BuildNumber)
    
  2. 使用AzureWebApp任务部署HTML报告到WebApp:
    - task: AzureWebApp@1
      inputs:
        azureSubscription: '你的Azure订阅'
        appName: '你的WebApp名称'
        package: 'allure-report/$(Build.BuildNumber)'
    

部署完成后,访问WebApp地址即可查看可视化报告。

方案2:自定义容器镜像在WebApp内生成报告

  1. 编写Dockerfile(基于Nginx+Allure CLI):
    FROM nginx:alpine
    RUN apk add --no-cache openjdk11 curl
    RUN curl -o allure.tgz -L https://github.com/allure-framework/allure2/releases/download/2.24.0/allure-2.24.0.tgz \
        && tar -xzf allure.tgz -C /opt \
        && ln -s /opt/allure-2.24.0/bin/allure /usr/bin/allure \
        && rm allure.tgz
    RUN mkdir -p /app/allure-results /app/allure-report
    COPY nginx.conf /etc/nginx/conf.d/default.conf
    COPY start.sh /app/start.sh
    RUN chmod +x /app/start.sh
    WORKDIR /app
    CMD ["/app/start.sh"]
    
  2. 编写nginx.conf设置报告目录为根路径:
    server {
        listen 80;
        root /app/allure-report;
        index index.html;
        location / {
            try_files $uri $uri/ =404;
        }
    }
    
  3. 编写start.sh脚本生成报告并启动Nginx:
    #!/bin/sh
    allure generate /app/allure-results -o /app/allure-report --clean
    nginx -g "daemon off;"
    
  4. 构建镜像并推送至ACR,再部署到Azure WebApp for Containers,同时挂载存储卷存放allure-results文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 15:20:32