PublishCucumberReport - 找不到 Cucumber 报告的输出路径
PublishCucumberReport - Can't find output path of cucumber report
插件无法找到文件并在 Azure DevOps 上生成 HTML 报告
Azure Devops 插件 - https://marketplace.visualstudio.com/items?itemName=MaciejMaciejewski.azure-pipelines-cucumber
蔚蓝-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\_work\s\target\results\cucumber
Finishing: Publish Cucumber Report
预计:
找到黄瓜 JSON 文件。
在上面的 yaml 管道中,您没有 运行 黄瓜测试生成黄瓜 JSON 文件的步骤。
如果 cucumber JSON 文件已经存在于您的存储库中。那么 PublishCucumberReport 任务的错误是因为目录 target/results/cucumber
在你的 repo 中不存在。
然后您需要检查 Cucumber JSON 文件在您的存储库中的位置,并为 PublishCucumberReport 任务指定正确的路径。
如果您的存储库中不存在 Cucumber JSON 文件。您应该将 yaml 管道中的步骤添加到 运行 您的测试。
如果您在 package.json 文件中配置了测试脚本,如下所示(report
文件夹必须存在于存储库中):
您只需 运行 npm test
即可执行测试并在 report
文件夹中生成 json 报告。见下文;
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'
在您的情况下,问题出在为黄瓜报告提供的路径中。
它应该是 json 格式的黄瓜报告文件夹的路径,但不是某些特定的 json.
因此,yaml 中的正确代码段是:
- task: PublishCucumberReport@1
displayName: 'Publish Cucumber Report'
inputs:
jsonDir: target/results/cucumber/
outputPath: target/results/cucumber/
插件无法找到文件并在 Azure DevOps 上生成 HTML 报告
Azure Devops 插件 - https://marketplace.visualstudio.com/items?itemName=MaciejMaciejewski.azure-pipelines-cucumber
蔚蓝-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\_work\s\target\results\cucumber
Finishing: Publish Cucumber Report
预计: 找到黄瓜 JSON 文件。
在上面的 yaml 管道中,您没有 运行 黄瓜测试生成黄瓜 JSON 文件的步骤。
如果 cucumber JSON 文件已经存在于您的存储库中。那么 PublishCucumberReport 任务的错误是因为目录 target/results/cucumber
在你的 repo 中不存在。
然后您需要检查 Cucumber JSON 文件在您的存储库中的位置,并为 PublishCucumberReport 任务指定正确的路径。
如果您的存储库中不存在 Cucumber JSON 文件。您应该将 yaml 管道中的步骤添加到 运行 您的测试。
如果您在 package.json 文件中配置了测试脚本,如下所示(report
文件夹必须存在于存储库中):
您只需 运行 npm test
即可执行测试并在 report
文件夹中生成 json 报告。见下文;
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'
在您的情况下,问题出在为黄瓜报告提供的路径中。 它应该是 json 格式的黄瓜报告文件夹的路径,但不是某些特定的 json.
因此,yaml 中的正确代码段是:
- task: PublishCucumberReport@1
displayName: 'Publish Cucumber Report'
inputs:
jsonDir: target/results/cucumber/
outputPath: target/results/cucumber/