La cobertura del código de Delphi es una herramienta de cobertura de código simple para Delphi que crea informes de cobertura de código basados en archivos de mapas detallados.
También consulte este proyecto, ya que agrega un asistente al IDE Delphi para ayudar a crear la configuración y iniciar la cobertura del código Delphi.
El proyecto para el que desea ejecutar un informe de cobertura de código debe tener una configuración de "depuración" que genera un archivo de mapa detallado.
La cobertura del código de Delphi actualmente solo mide la "cobertura de línea", es decir, rastreará cada línea para la que se generó el código y lo marcará si se ejecutó.
Para las aplicaciones que usan bibliotecas de paquetes Borland (que son esencialmente DLL) o DLL externos, DCC intentará cargar un archivo .map para cada DLL y si existe y las unidades en esas bibliotecas son parte de las unidades cubiertas, la cobertura de código abarcará el DLL/BPL cargado como parte de la aplicación. El archivo .map debe existir en el mismo directorio que la DLL que se cargó.
Descargue la última versión, descomprima el archivo y colóquelo, por ejemplo, en su directorio "bin" de las instalaciones de Delphi o en algún lugar donde esté en la "ruta".
Todos los parámetros comprenden también las variables de entorno en estilo por lotes (por ejemplo, % windir % etc.) si se utiliza un archivo para los directorios de origen (ver -spf ), también se permiten variables de entorno. Es posible excluir unidades específicas en el archivo de unidades (ver -uf ) prependiendo un "!" antes del nombre de la unidad.
Abra un solicitado de línea de comando en el directorio donde está su aplicación compilada y ejecutable.
Tipo: CodeCoverage -m TestApp.map -e TestApp.exe -u TestUnit TestUnit2 -xml -html
Debido a las características de idioma más nuevas utilizadas, se requiere un compilador algo más nuevo. Se sabe que el proyecto no es compatible con Delphi XE2. XE3 probablemente funcionará. El desarrollo principal se realiza con versiones 10.x.
-html como parámetro)Para cada unidad habrá una unidad.html con un resumen de la cobertura, seguido de la fuente marcada. Las líneas verdes estaban cubiertas. Las líneas rojas no eran líneas cubiertas. Las otras líneas no tenían código generado para ello. También hay un archivo CODECOVERAGE_SUMMARY.HTML que resume la cobertura y tiene enlaces a los informes de la unidad generados.
-xml como parámetro)Se genera un informe de XML resumido llamado Codecovergege_Summary.xml en el directorio de salida que es compatible con la salida XML de EMMA. Use en combinación con los interruptores '-xmlllines' y '-xmlGenerics' para una cobertura de código detallada por línea.
-emma o -emma21 como parámetro)Ahora es posible crear una salida compatible con EMMA que permita el uso de EMMA para fusionar múltiples ejecuciones de cobertura de código, así como usar EMMA para generar informes.
DCC es compatible con Delphi hasta 10.4.2, tanto de 32 y 64 bits.
Puede integrar los resultados del informe XML en Sonarqube. Consulte el complemento Delphi Sonarqube o la versión más nueva aquí para obtener información detallada.
Puede integrar el informe XML utilizando el complemento Hudson Emma. El informe HTML se puede integrar utilizando el complemento HTML Publisher.
El último lanzado fue posible a través del generoso apoyo de Devfactory y Mendrix.
Este proyecto se inspiró en grandes herramientas en el mundo de Java como Emma. Este proyecto ha estado persistiendo en una forma inacabada en mi disco duro durante más de un año. Finalmente se deslizó.
-m MapFile.map | El archivo de mapa utilizado como entrada |
-e Executable.exe | El ejecutable para ejecutar |
-sd directory | El directorio donde se puede encontrar la fuente |
-sp directory directory2 | Los directorios donde se puede encontrar la fuente |
-spf filename | Use directorios de origen enumerados en el archivo apuntado por el nombre de archivo. Un directorio por línea en el archivo |
-esm mask1 mask2 etc | Una lista de máscaras de archivos para excluir de la lista de unidades |
-ism mask1 mask2 etc | Enumerar solo las unidades que coinciden con las máscaras de archivo proporcionadas |
-ecp prefix1 mask2 etc | Una lista de prefijos de clase para excluir de la cobertura |
-od directory | El directorio donde se colocarán los archivos de salida - Nota - El directorio debe existir |
-u TestUnit TestUnit2 | Las unidades que se verificarán para obtener cobertura de código |
-uf filename | Las unidades de cubierta enumeradas en el archivo apuntadas por el nombre de archivo. Una unidad por línea en el archivo |
-v | Mostrar salida detallada |
-dproj ProjectFile.dproj | Analice el archivo del proyecto para los DIR de origen, el nombre ejecutable, la página de código y otras opciones. Tenga en cuenta que las opciones que solo podrían tener un valor único, como la página del código, se sobrescribirán en el orden de apariencia si se encuentran múltiples interruptores relacionados. |
-a Param Param2 | Parámetros para pasar a la aplicación que se verificará para obtener la cobertura del código. ^ es un personaje de escape |
-lt [filename] | Registre los eventos en un archivo de registro de texto. El nombre del archivo predeterminado es: Delphi-Code-Coverage-DeBug.log |
-lapi | Registre los eventos a la API de Windows OutputDebugString |
-ife | Incluya la extensión del archivo: esto detendrá "Common.Engroyings" siendo 'convertido' a "común" |
-efe | Excluir la extensión del archivo: esto 'convertirá' "común.encodings.pas" a "Common.Encodings" (y lamentablemente, "Common.Engrodings" a "Common"). Esto está activado por defecto. |
-emma | Genere la salida de cobertura de EMMA como 'cobertura.es' en el directorio de salida. |
-emma21 | Genere la salida de cobertura EMMA21 como 'cobertura.es' en el directorio de salida. |
-meta | Genere archivos de meta y cobertura separados cuando se genere salida de EMMA - 'Coberten.EM' y 'Coberten.EC' se generarán para meta datos y datos de cobertura. Nota: Necesita -emma también. |
-xml | Genere la salida de cobertura XML: genere la salida XML como 'Codecoverage_summary.xml' en el directorio de salida. |
-xmllines | Agrega cobertura de líneas a la salida de cobertura XML generada. |
-xmlgenerics | Combine la cobertura de líneas para múltiples ocurrencias del mismo nombre de archivo (especialmente útil en caso de clases genéricas). |
-html | Genere la salida de cobertura HTML como 'Codecovergege_summary.html' en el directorio de salida. |
-uns dll_or_exe unitname [unitname_2] | Cree un espacio de nombres separado (el nombre del espacio de nombres será el nombre del módulo sin extensión) solo para las unidades enumeradas dentro del módulo |
-mns name dll_or_exe [dll_or_exe_2] | Cree un espacio de nombres separado con el nombre de pila para la DLL: S enumerada. Todos los módulos cargados en esos módulos estarán atacados por nombres. |
-lcl LineCountLimit | Número de recuento de veces que una línea se ejecuta hasta el límite especificado |
-cp CodePage | Código Número de página de archivos de origen |
-tec | Pasar el código de salida de la aplicación inspeccionada |
-twd | Use la ruta de la aplicación como directorio de trabajo |
La cobertura del código de Delphi tiene licencia bajo los términos de la Licencia Pública de Mozilla, v. 2.0. Puede obtener una copia de la licencia en http://mozilla.org/mpl/2.0/.