Le plug-in ne peut pas trouver de fichiers et générer un rapport HTML sur Azure DevOps

Plug-in Azure Devops - https://marketplace.visualstudio.com/items? itemName = MaciejMaciejewski.azure-pipelines-concombre

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/

Réelle:

  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

Attendu: fichier JSON de concombre trouvé.

0
naz1719 23 févr. 2021 à 16:11

2 réponses

Meilleure réponse

Dans votre cas, le problème se situe dans le chemin fourni pour le rapport sur le concombre. Il devrait s'agir d'un chemin vers le dossier contenant les rapports de concombre au format json, mais pas vers un fichier json particulier.

Ainsi, l'extrait de code correct dans yaml serait:

        - task: PublishCucumberReport@1
        displayName: 'Publish Cucumber Report'
        inputs:
        jsonDir: target/results/cucumber/
        outputPath: target/results/cucumber/
1
Kateryna Lysenko 4 mars 2021 à 10:27

Dans le pipeline yaml ci-dessus, vous n'aviez pas l'étape d'exécuter votre test de concombre pour générer le fichier JSON de concombre.

Si le fichier JSON de concombre existe déjà dans votre dépôt. Ensuite, l'erreur de la tâche PublishCucumberReport est due au fait que le répertoire target/results/cucumber n'existe pas dans votre dépôt.

Ensuite, vous devez vérifier où se trouve le fichier JSON de concombre dans votre dépôt et spécifier le chemin correct pour la tâche PublishCucumberReport.

S'il n'y a pas de fichier JSON concombre dans votre dépôt. Vous devez ajouter des étapes dans le pipeline yaml pour exécuter vos tests.

Si vos scripts de test sont configurés dans le fichier package.json, comme ci-dessous (le dossier report doit exister dans le dépôt):

enter image description here

Vous pouvez simplement exécuter npm test pour exécuter vos tests et générer le rapport json dans le dossier report. Voir ci-dessous;

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

S'il n'y a pas de script de test défini dans votre fichier package.json. Vous pouvez exécuter la commande cucumber-js dans le pipeline yaml pour générer le fichier json. Voir ci-dessous:

- script: |
   #npm install cucumber
   npm install 
   ./node_modules/.bin/cucumber-js features -f json:report/cucumber_report.json
  displayName: 'Run tests'
1
Levi Lu-MSFT 24 févr. 2021 à 04:26