Saltar al contenido

JaCoCo con Maven: falta el archivo de datos de ejecución

Esta es el arreglo más exacta que encomtrarás compartir, pero primero obsérvala detenidamente y analiza si se puede adaptar a tu trabajo.

Solución:

No debe invocar al agente después de la fase de instalación sino antes, así que en lugar de invocar:

mvn clean install jacoco:prepare-agent jacoco:report

deberías invocar

mvn clean jacoco:prepare-agent install jacoco:report

La razón principal es: el agente no participará en el ciclo de vida de la compilación, el test fase ya se ejecutará como parte de la install fase, entonces Maven ejecutará el agente según la invocación de la línea de comando, pero será demasiado tarde.


Probablemente también debería cambiar la configuración del complemento anterior a:


    org.jacoco
    jacoco-maven-plugin
    0.7.6.201602180812
    
        
            jacoco-initialize
            
                prepare-agent
            
        
        
            jacoco-site
            package
            
                report
            
        
    

Nota: eliminé la sección de configuración porque en realidad apuntaba a valores predeterminados. Además, los elementos XML distinguen entre mayúsculas y minúsculas aquí, por lo que su datafile elemento fue simplemente ignorado, debería haber sido dataFile en cambio. Lo mismo se aplica a destFile.

los prepare-agent el objetivo ya está usando $project.build.directory/jacoco.exec por defecto destFile valor, lo mismo se aplica a la dataFile valor para el report meta. La razón principal de este cambio sería una construcción más flexible y estándar, sin depender de artifactId como nombre del proyecto (el predeterminado, pero aún no obligatorio) y usando el más genérico $project.build.directory propiedad en lugar de apuntar directamente a target.


Nota final: asegúrese de configurar las ejecuciones del complemento Jacoco dentro del build/plugins sección y no build/pluginManagement/plugins sección. los pluginManagement La sección está destinada a la gobernanza y la armonización común de versiones o configuraciones, pero será ignorado si el plugin correspondiente no se declarara bajo build/plugins.
Según la referencia oficial de Maven POM

administración de complementos: es un elemento que se ve junto a los complementos laterales. La administración de complementos contiene elementos de complemento de la misma manera, excepto que en lugar de configurar la información del complemento para esta compilación de proyecto en particular, está destinado a configurar compilaciones de proyecto que heredan de esta. Sin embargo, esto solo configura complementos a los que realmente se hace referencia dentro del elemento de complementos en los niños Los niños tienen todo el derecho de anular pluginManagement definiciones

(nota: la negrita es mía)

  • Los informes de JaCoCo se crean a partir del archivo de datos de ejecución.
  • Si este archivo no está presente, el objetivo del informe de JaCoCo omite la creación del informe.
  • Por lo tanto, es obligatorio crear el archivo de datos de ejecución.

Las razones por las cuales no se creará el archivo de datos de ejecución son las siguientes

– Las pruebas no están presentes.
– Todas las pruebas son ignoradas.
– Falta el complemento Surefire.
– El objetivo del agente de preparación de JaCoCo no se ejecuta, lo que establece argLine, que se necesita para configurar de forma segura.
– El complemento Surefire no está configurado con el agente de JaCoCo.

Creo que “destfile” y “datafile” distinguen entre mayúsculas y minúsculas, así que intente reemplazarlos con “destFile” y “dataFile”, tal vez funcione 🙂

Nos puedes estimular nuestra ocupación poniendo un comentario y puntuándolo te damos la bienvenida.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *