Tengo un problema en el que mi insignia de cobertura de gitlab informa como "desconocido" para un proyecto de NodeJS en el que estoy trabajando. Leí docenas de artículos de stackoverflow sobre esto y probé todas las soluciones sugeridas en vano, así que pensé en poner los detalles de mi configuración en esta publicación para ver si alguien puede identificar qué podría estar causando el problema.
El trabajo que tengo en mi archivo gitlab-ci.yml es el siguiente:
test_coverage: image: node:16 stage: test_coverage before_script: - echo "This skips any predefined before scripts to ensure clean environments" tags: - Nexus script: - npm run test:ci coverage: /All\sfiles.*?\s+(\d+.\d+)/ artifacts: when: always reports: junit: - ./junit.xml cobertura: coverage/cobertura-coverage.xml dependencies: - install except: - tagsEl script npm run test:ci en mis archivos package.json es el siguiente:
"test:ci": "CI=true NODE_ENV=test ENVIRONMENT=CI_CD NODE_OPTIONS=--experimental-vm-modules jest --coverage --collectCoverage --coverageDirectory=\"./coverage\" --ci --reporter=html --reporter=text --reporter=cobertura --reporters=default --reporters=jest-junit --watchAll=false"Tengo la siguiente expresión regular en la sección de configuración de informes de cobertura de prueba de gitlab
/All\sfiles.*?\s+(\d+.\d+)/También tengo el enlace de la insignia y la URL configurados en gitlab.
Cuando ejecuto mi npm run test:ci script localmente, obtengo un informe de cobertura encantador. Cuando mi trabajo se ejecuta en la canalización de gitlab, mi informe de cobertura tiene 0 para cada archivo. Me dice que todas mis pruebas se ejecutaron y pasaron. Me dice que mis artefactos junit y cobertura se completaron con éxito y que el trabajo se realizó correctamente.
Tengo la fuerte sensación de que si estuviera viendo números de cobertura reales en los registros de trabajo de gitlab como veo cuando ejecuto el script localmente, la insignia funcionaría. Pero no tengo idea de por qué me informan todos los 0. ¿Alguien puede ver lo que estoy haciendo mal según la información proporcionada aquí?