J'ai eu du mal à trouver une expression régulière qui fonctionnerait dans l'entrée "Analyse de la couverture de test" de la page "Pipelines CI/CD". Cela n'aide en rien que les exemples montrent des exemples incohérents, c'est-à-dire des parenthèses d'échappement et d'autres non, comme avec des symboles de pourcentage, certains capturent le résultat explicite dans $1
, etc. Quoi qu'il en soit, voici mon texte - qu'est-ce que la regex?
Badge CI:
![coverage](https://gitlab.com/mycompany/master/badges/master/coverage.svg?job=coverage)
Texte de sortie:
Unit test coverage:
10.01% blocks
10.01% lines
Essayé jusqu'à présent: (ajout des barres obliques simplement pour représenter l'espace à l'avant ou regex)
/ \(\d+\.\d+\%\) blocks/
/ (\d+\.\d+\%) blocks/
/ (\d+\.\d+%) blocks/
/ (\d+\.\d+)% blocks/
Il existe une page Web utile Ruby regex.
Je n'ai pas aidé pour moi avec l'analyse syntaxique de la couverture de code GitLab. Je pense que c'est parce qu'il semble y avoir un bogue enregistré pour un problème de regex dans GitLab. https://gitlab.com/gitlab-org/gitlab-ce/issues/21495
Le problème était que la requête d'URL de couverture "? Job = coverage" était incorrecte. En ce qui concerne la regex, j'ai utilisé:
\W(\d+(?:\.\d+)%)\sblocks
Cette expression régulière devrait récupérer la couverture des blocs:
^\s*(\d+(?:\.\d+)?%)\s*blocks
Si vous souhaitez récupérer la couverture de ligne à la place, utilisez ceci:
^\s*(\d+(?:\.\d+)?%)\s*lines
GitLab ajoute automatiquement les /
premiers et derniers automatiquement afin que vous n'ayez pas besoin de les ajouter à votre expression régulière.
Pour référence future, GitLab est écrit en Ruby afin que vous puissiez tester cette expression régulière en Ruby sur rubular.com