es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

SonarQube muestra una cobertura menor para el código cuando se utiliza Java 8.

Estoy ejecutando Sonar en mi servicio basado en spring-boot. Anteriormente, la cobertura era del 75%, pero después de migrar Sonar Runner a Java 11, la cobertura de mi código es del 15%. Probé en otros servicios donde ejecuté pruebas con la imagen JDK 11 y Sonar utilizando JDK 11, y obtuve una cobertura adecuada. Sin embargo, en este servicio, debido a un problema, no quiero ejecutar pruebas utilizando JDK 11. ¿Qué podría faltar?

Configuración que proporciona una cobertura adecuada (Nota: este es un servicio diferente)

.test: &test
  stage: test
  image: maven:3.8.1-openjdk-11-slim
  services:
    - mongo
    - docker:dind
  script:
    - mvn test -Dspring.profiles.active=$PROFILE
  tags:
    - build-devops
  artifacts:
    paths:
      - target/jacoco.exec
      - target/spotbugsXml.xml
      - target/dependency-check-report.xml
      - target/dependency-check-report.html
      - target/checkstyle-result.xml

sonarqube:
  stage: sonar
  image: maven:3.8.1-openjdk-11-slim
  script:
    - mvn -q -U -B verify --settings settings.xml sonar:sonar -DskipTests=true -Dsonar.host.url=$SONAR_URL -Dsonar.login=$SONAR_LOGIN

Configuración del servicio con el problema

.test: &test
  stage: test
  image: maven:3.8.1-openjdk-8-slim
  services:
    - mongo
    - docker:dind
  script:
    - mvn  test -Dspring.profiles.active=local
    - mvn  test -Dspring.profiles.active=central
  tags:
    - build-devops
  artifacts:
    paths:
      - target/jacoco.exec
      - target/spotbugsXml.xml
      - target/dependency-check-report.xml
      - target/dependency-check-report.html
      - target/checkstyle-result.xml

sonarqube:
  stage: sonar
  image: maven:3.8.1-openjdk-11-slim
  script:
    - mvn -q -U -B verify sonar:sonar --settings settings.xml -DskipTests=true -Dsonar.host.url=$SONAR_URL -Dsonar.login=$SONAR_LOGIN
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    El problema podría ser debido al uso de diferentes versiones de Java. Dado que el servicio que presenta el problema está utilizando JDK 8, es posible que una versión inferior de Java esté causando problemas con el análisis de cobertura de código.

    Para solucionar esto, puedes intentar actualizar la versión de Java en la configuración del servicio que presenta el problema a JDK 11, que es la versión que proporcionó una cobertura adecuada en el otro servicio. Si no quieres actualizar la versión de Java, debes verificar la compatibilidad de la versión de Sonarqube que estás utilizando con Java 8. Es posible que la versión que estés utilizando no sea compatible con Java 8, lo cual podría estar causando el problema.

    Otra solución podría ser intentar actualizar las versiones de Maven y Sonarqube en la configuración del servicio que presenta el problema. Es posible que las versiones antiguas de estas herramientas estén causando problemas en el análisis de cobertura.

    Además, puedes verificar si hay alguna diferencia en el código de prueba entre los dos servicios. Es posible que el código de prueba en el servicio que presenta el problema no esté escrito correctamente, lo cual está causando problemas con el análisis de cobertura.

    En general, las posibles soluciones para abordar el problema incluyen actualizar las versiones de Java, Maven y Sonarqube, verificar la compatibilidad de la versión de Sonarqube con Java 8 y revisar el código de prueba en busca de posibles problemas.

Comments are closed.