#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.