1
votes

'reportgenerator' n'est pas reconnu comme une commande interne ou externe, un programme utilisable ou un fichier de commandes

Lorsque vous essayez de créer un rapport à l'aide de l'outil 'ReportGenerator' dans le cadre de Azure devops YAML pipleine, ci-dessous l'erreur est lancée alors que j'ai installé l'outil à l'étape précédente.

- script: dotnet tool install --global dotnet-reportgenerator-globaltool --version 4.6.1
  displayName: 'Install ReportGenerator tool'
  continueOnError: true

- script: reportgenerator "-reports:$(Agent.TempDirectory)/**/*.cobertura.xml" "-targetdir:$(Build.SourcesDirectory)/coverlet/reports" -reporttypes:Cobertura;htmlInline
  displayName: Generate code coverage report
  continueOnError: true

Erreur: 'reportgenerator' n'est pas reconnu comme une commande interne ou externe, programme utilisable ou fichier de commandes. ## [error] Cmd.exe s'est fermé avec le code "1".

Ajout de journaux Étape d'installation: Contenu du script: dotnet tool install dotnet-reportgenerator-globaltool --tool-path tools --version 4.6.1 ========================== Démarrage de la sortie de commande ====================== ====== "C: \ windows \ system32 \ cmd.exe" / D / E: ON / V: OFF / S / C "CALL" E: \ Agent_work_temp \ d9535a65-152b-4822-a4f2-7e58c11f2418.cmd "" Vous pouvez appeler l'outil à l'aide de la commande suivante: reportgenerator L'outil «dotnet-reportgenerator-globaltool» (version «4.6.1») a été installé avec succès. Finition: Installez l'outil ReportGenerator

Outil d'exécution: Contenu du script: reportgenerator "-reports: E: \ Agent_work_temp / ** / *. cobertura.xml" "-targetdir: E: \ Agent_work \ 79 \ s / coverlet / reports" -reporttypes: Cobertura; htmlInline ========================== Démarrage de la sortie de commande ====================== ====== "C: \ windows \ system32 \ cmd.exe" / D / E: ON / V: OFF / S / C "CALL" E: \ Agent_work_temp \ 53dbc699-e878-4458-aaf2-8e69e5c4f09a.cmd "" 'reportgenerator' n'est pas reconnu comme une commande interne ou externe, programme utilisable ou fichier de commandes. ## [error] Cmd.exe s'est arrêté avec le code "1".


1 commentaires

Avez-vous essayé de redémarrer le service d'agent de build? Votre problème est-il résolu?


3 Réponses :


1
votes

Il existe un bogue connu lorsque vous essaient de le faire sur une machine Linux. Après l'installation du générateur de rapports, veuillez essayer d'ajouter cette étape supplémentaire pour mettre à jour le PATH:

- task: DotNetCoreCLI@2
    displayName: Install ReportGenerator Global Tool
    inputs:
      command: custom
      custom: tool
      arguments: install dotnet-reportgenerator-globaltool -g

- script: echo "##vso[task.prependpath]$HOME/.dotnet/tools"
  displayName: 'Update PATH'

- script: reportgenerator "-reports:$(Agent.TempDirectory)/**/*.cobertura.xml" "-targetdir:$(Build.SourcesDirectory)/coverlet/reports" -reporttypes:Cobertura;htmlInline
  displayName: Generate code coverage report
  continueOnError: true

Donc, toute la solution ressemble à ceci:

- script: echo "##vso[task.prependpath]$HOME/.dotnet/tools"

p>


2 commentaires

Merci pour la réponse rapide. Mais cela n'a pas fonctionné. même erreur


Étrange, j'ai également mis à jour la première étape pour installer le générateur de rapports avec la tâche DotNetCoreCLI . Essayez-le. Cela fonctionne sur ma configuration. J'utilise ubuntu-latest comme vmImage. Si cela ne fonctionne pas, veuillez coller le fichier yaml complet et créer une sortie sans données sensibles bien sûr.



0
votes

Ceci est dû au fait que vous utilisez un agent auto-hébergé. Après avoir installé un nouveau logiciel sur un agent, vous devez redémarrer l'agent pour que la nouvelle fonctionnalité apparaisse dans le pool afin que la compilation puisse s'exécuter.

Accédez simplement au Gestionnaire des tâches sur votre machine d'agent et redémarrez le service d'agent de compilation.


0 commentaires

0
votes

Le fichier YAML suivant devrait faire l'affaire:

- task: Palmmedia.reportgenerator.reportgenerator-build-release-task.reportgenerator@4
  displayName: ReportGenerator
  inputs:
    reports: '$(Agent.TempDirectory)/**/*.cobertura.xml'
    targetdir: '$(Build.SourcesDirectory)/coverlet/reports'
    reporttypes: 'Cobertura;HtmlInline'

Vous pouvez également utiliser l'extension Azure DevOps:
https://marketplace.visualstudio.com/items?itemName=Palmmedia.reportgenerator

Utilisation:

- script: dotnet tool install --tool-path tools dotnet-reportgenerator-globaltool --version 4.6.1
  displayName: 'Install ReportGenerator tool'
  continueOnError: true

- script: ./tools/reportgenerator "-reports:$(Agent.TempDirectory)/**/*.cobertura.xml" "-targetdir:$(Build.SourcesDirectory)/coverlet/reports" "-reporttypes:Cobertura;HtmlInline"


0 commentaires