首页 > 解决方案 > PublishCucumberReport - 找不到黄瓜报告的输出路径

问题描述

该插件在 Azure DevOps 上找不到文件并生成 HTML 报告

Azure Devops 插件 - https://marketplace.visualstudio.com/items?itemName=MaciejMaciejewski.azure-pipelines-cucumber

天蓝色管道.yml

jobs:
  # Build Electron
  - job: UserAcceptanceTest
    displayName: E2E-Tests
    pool:
      name: ado-win-pool
    timeoutInMinutes: 120
    steps:
      - task: CopyFiles@2
        inputs:
          sourceFolder: $(Build.SourcesDirectory)
          targetFolder: $(Build.ArtifactStagingDirectory)

      - task: PublishPipelineArtifact@1
        displayName: 'Publishing build artifacts'
        inputs:
          targetPath: $(Build.ArtifactStagingDirectory)

      - task: NodeTool@0
        displayName: 'Install Node 12.x'
        inputs:
          versionSpec: 12.x

      - task: PublishCucumberReport@1
        displayName: 'Publish Cucumber Report'
        inputs:
          jsonDir: target/results/cucumber/
          outputPath: target/results/cucumber/

实际的:

  Found 0 matching C:/agent/_work/13/s/target/results/cucumber pattern
    ##[warning]Error: Not found outputPath: C:\agent\_work\13\s\target\results\cucumber
    Finishing: Publish Cucumber Report

预期:找到黄瓜 JSON 文件。

标签: azureazure-devopscucumberreport

解决方案


在上面的 yaml 管道中,您没有运行黄瓜测试以生成黄瓜 JSON 文件的步骤。

如果您的存储库中已经存在黄瓜 JSON 文件。然后 PublishCucumberReport 任务的错误是因为target/results/cucumber您的存储库中不存在该目录。

然后您需要检查黄瓜 JSON 文件在您的存储库中的位置,并为 PublishCucumberReport 任务指定正确的路径。

如果您的存储库中不存在黄瓜 JSON 文件。您应该在 yaml 管道中添加步骤来运行您的测试。

如果您在 package.json 文件中配置了测试脚本,如下所示(reportrepo 中必须存在文件夹):

在此处输入图像描述

您可以只运行来执行您的测试并在文件夹npm test中生成 json 报告。report见下文;

steps:
- task: NodeTool@0
  displayName: 'Install Node 12.x'
  inputs:
    versionSpec: 12.x

- script: |
   npm install
   npm test
  displayName: 'Run tests'
 

- task: PublishCucumberReport@1
  inputs:
    jsonDir: report
    outputPath: report

如果您的 package.json 文件中没有定义测试脚本。您可以在 yaml 管道中运行 cucumber-js 命令生成 json 文件。见下文:

- script: |
   #npm install cucumber
   npm install 
   ./node_modules/.bin/cucumber-js features -f json:report/cucumber_report.json
  displayName: 'Run tests'

推荐阅读