PublishCucumberReport — не удается найти выходной путь отчета cucumber

#azure #azure-devops #cucumber #report

#azure #azure-devops #cucumber #Сообщить

Вопрос:

Плагин не может найти файлы и сгенерировать HTML-отчет в Azure DevOps

Azure Devops плагин — https://marketplace.visualstudio.com/items?itemName=MaciejMaciejewski.azure-pipelines-cucumber

azure-pipelines.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_work13stargetresultscucumber
    Finishing: Publish Cucumber Report
 

Ожидается:
Найден файл cucumber JSON.

Комментарии:

1. Привет, у вас была возможность проверить ответ ниже? Пожалуйста, сообщите мне, помогло ли это вам решить эту проблему

2. В частности, да, полный ответ был дан под вашим ответом. Спасибо за усилия.

3. Это здорово, что это было исправлено. Вы можете принять приведенный выше ответ , поскольку он сработал. Спасибо.

Ответ №1:

В вашем случае проблема заключается в пути, указанном для отчета cucumber. Это должен быть путь к папке с отчетами cucumber в формате json, но не к какому-то конкретному json.

Итак, правильный фрагмент в yaml будет:

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

Комментарии:

1. Да, это была основная причина. Изменение пути решило проблему. Спасибо за ответ.

Ответ №2:

В приведенном выше конвейере yaml у вас не было шага для запуска теста cucumber для создания файла cucumber JSON.

Если файл cucumber JSON уже существует в вашем репозитории. Тогда ошибка задачи PublishCucumberReport связана с тем, что каталог target/results/cucumber не существует в вашем репозитории.

Затем вам нужно проверить, где находится файл cucumber JSON в вашем репозитории, и указать правильный путь для задачи PublishCucumberReport.

Если в вашем репозитории нет файла cucumber JSON. Вы должны добавить шаги в конвейер yaml для запуска ваших тестов.

Если у вас настроены тестовые сценарии в файле package.json, как показано ниже ( report папка должна существовать в репозитории):

введите описание изображения здесь

Вы можете просто запустить 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 не определен тестовый сценарий. Вы можете запустить команду cucumber-js в конвейере yaml для создания файла json. Смотрите ниже:

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

Комментарии:

1. Мы используем java вместо Node, проблема была в пути. Путь должен быть к папке, но не к файлу, а также плагин может существовать без плагина node js.