Herramientas de cobertura de código Java

Ir a: navegación, búsqueda de

Java Cobertura de código Herramientas son de dos tipos: en primer lugar, herramientas que agregue instrucciones a la fuente de código y requieren recompilación del código fuente. En segundo lugar, las herramientas ese instrumento el código byte, antes o durante la ejecución. El objetivo es averiguar qué partes del código son probados por el registro de las líneas de código ejecutado Cuando se ejecuta una prueba.

Contenido

  • 1 JCov
    • 1.1 Características
    • 1.2 Herramientas utilizando JCov
  • 2 JaCoCo
    • 2.1 Características
    • 2.2 Herramientas de uso o incluso JaCoCo
  • 3 Trébol
  • 4 Cobertura
  • 5 EMMA
    • 5.1 Características
      • 5.1.1 Herramientas de EMMA
  • 6 Serenidad
  • 7 Testwell CTC ++ Java
  • 8 Ver también
  • 9 Referencias
  • 10 Enlaces externos

JCov

JCov
Desarrolladores Leonid Arbouzov, Alexander Petrov, Vladimir Generalov, Serguei Chukhontsev, Oleg Uliankin, Gregory Steuck, Pavel Ozhdikhin, Konstantin Bobrovsky, Roberto campo, Alexander Kuzmin, Leonid Mesnik, Sergey Borodin, Andrey Titov, Dmitry Fazunenko, Alexey Fedorchenko
Versión estable
3.0 / 01 de septiembre de 2014 ; hace 2 años )2014-09-01)
Sistema operativo Multiplataforma
Tipo Cobertura de código
Licencia de Licencia pública GNU(versión 2, con la excepción de Classpath)
Sitio web JCov

JCov es la herramienta que ha sido desarrollada y utilizado con el JDK de Sun (y más tarde Oracle JDK) desde el principio de Java: desde la versión 1.1. JCov es capaz de medir e informar Java cobertura de código. JCov es distribuido bajo los términos de la Licencia pública GNU(versión 2, con la excepción de Classpath). JCov ha sido código abierto como parte de un proyecto de codetools OpenJDK en 2014.

Características

JCov es capaz de reportar los siguientes tipos de cobertura de código:

  • Cobertura de bloque
  • Cobertura de línea
  • Cobertura de la rama
  • Cobertura de método

JCov implementa dos diferentes formas de guardar los datos recogidos:

  • en un archivo en el sistema de archivos
  • en un servidor (también conocido como "capturador de red").

JCov obras de instrumentación de código de bytes de Java usando dos métodos diferentes:

  • instrumentación estática que se realiza por adelantado, cambiar el código de prueba
  • instrumentación dinámica que se hace sobre la marcha por medio de agente de Java.

JCov tiene algunas de las características más distintivas que incluyen, pero no se limitan a:

  • Cobertura de campo
  • Resumen cobertura de API
  • Cobertura directa e indirecta
  • Información de cobertura "(también conocido como escalas de la prueba del) por prueba
  • Público API y SPI que permite aplicación filtros personalizados o explotación minera de los datos de cobertura.

Herramientas utilizando JCov

  • Oracle JDK (SE y ME)
  • JCK (el Kit de compatibilidad de Java)
  • Varios Java SE y Java ME TCKs
  • SDK de Java FX
  • Java FX escena Builder

JaCoCo

JaCoCo
Desarrolladores Marc Hoffmann, Brock Janiczak, Evgeny Mandrikov, Mirko Friedenhagen
Versión estable
0.7.9 / 05 de febrero de 2017 ; hace 4 meses )2017-02-05)
Sistema operativo Multiplataforma
Tipo Cobertura de código
Licencia de EPL
Sitio web JaCoCo

JaCoCo es un código abierto Kit de herramientas para medir e informar Java cobertura de código. JaCoCo es distribuido bajo los términos de la Licencia pública de Eclipse. Fue desarrollado como un reemplazo para EMMA[1] bajo el paraguas de la EclEmma plug-in para Eclipse.

Características

JaCoCo ofrece instrucciones, cobertura de línea y rama.

En contraste con Trébol, que requiere instrumentación del código fuente, JaCoCo puede instrumento bytecode de Java usando dos métodos diferentes:

  • como JCov sobre la marcha mientras se ejecuta el código con un agente de Java,[2]
  • como JCov y Cobertura antes de la ejecución (offline)

Y se puede configurar para almacenar los datos recogidos en un archivo, o enviarlo via TCP. Pueden combinar fácilmente archivos de funcionamientos múltiples o de piezas de código.[3] A diferencia de la Cobertura y Emma apoya plenamente Java 7, Java 84] y Java 9.

Herramientas de uso o incluso JaCoCo

  • SonarQube JaCoCo plugin, uno de los defectos de cobertura analiza dentro de la plataforma de gestión de calidad de código SonarQube
  • EclEmma Eclipse (software) Plugin de cobertura de código, fue anteriormente EMMA basada[5]
  • Jenkins JaCoCo Plugin6]
  • NetBeans JaCoCo apoyo[7]
  • IntelliJ IDEA desde la v114]
  • Gradle JaCoCo Plugin[8]

Trébol

Trébol
Desarrolladores Atlassian
Versión estable
4.1.2 / 11 de octubre de 2016 ; hace 7 meses )2016-10-11)
Sistema operativo Multiplataforma
Tipo Cobertura de código
Licencia de Apache 2.0
Sitio web www.atlassian.com

Trébol es un Java Análisis de la cobertura de código aplicación desarrollada inicialmente por Atlassian. Era un producto comercial que se hizo de código abierto en el año 2017.

Clover USA una técnica de instrumentación de código fuente (en lugar de Cobertura y JaCoCo, que utiliza instrumentación de código byte), que tiene sus ventajas (como una habilidad para recoger métricas de código) y desventajas (nueva compilación de fuentes es necesario).[9] Algunas de sus características incluyen reporting histórico, gran control sobre la cobertura de recolección proceso, conjunto de herramientas de línea de comandos y API para la integración antiguo y más.

Trébol también permite tiempo para reducirse sólo ejecutar las pruebas que el código de la aplicación que fue modificado desde la versión anterior de la prueba. Esto se llama optimización de la prueba[10] y puede llevar a grandes caídas en la cantidad de tiempo gastado esperando pruebas automatizadas completar.

Trébol viene con una serie de integraciones, que ambos desarrollados por Atlassian (Ant, Maven, Grails, Eclipse, IDEA, bambú) y por la comunidad de código abierto (Gradle, leonado, Jenkins, Hudson, Sonar).

Cobertura

Cobertura
Desarrolladores Steven Christou
Versión estable
2.1.1 / 26 de febrero de 2015 ; hace 2 años )2015-02-26)
Sistema operativo Multiplataforma
Tipo Cobertura de código
Licencia de GPL 2.0
Sitio web cobertura.github.IO/cobertura/

Cobertura es un código abierto herramienta para la medición de cobertura de código. Lo hace por la instrumentación del código byte.

EMMA

EMMA
Desarrolladores Vlad Roubtsov
Versión estable
2.1 / 13 de mayo de 2005 ; hace 12 años )2005-05-13)
Sistema operativo Multiplataforma
Tipo Cobertura de código
Licencia de Licencia pública común 1.0
Sitio web Emma.sourceforge.net

EMMA es un código abierto Kit de herramientas para medir e informar Java cobertura de código. EMMA se distribuye bajo los términos de Licencia pública común v1.0.

EMMA no está bajo desarrollo activo; la última versión estable tuvo lugar a mediados de 2005. Como reemplazo, JaCoCo fue desarrollado.[11] EMMA trabaja envolviendo cada condición con una bandera, que se establece cuando se ejecuta esa línea y cada línea de código.[12]

Características

  • instrumento clases de cobertura o fuera de línea (antes de que se carguen) o sobre la marcha (utilizando un cargador de clases de aplicación equipar).
  • Tipos de cobertura: clase, método, línea, bloque básico. EMMA puede detectar cuando una línea de código fuente se cubre sólo parcialmente.
  • Estadísticas de cobertura se agregan en el método, clase, paquete y los niveles de "todas las clases".
  • Salida de tipos de informe: texto plano, HTML, XML. Todos los tipos de informe apoyan desglose, a una profundidad de detalle controlados por el usuario. El informe HTML soporta enlazan a código de fuente.
  • Informes de salida pueden resaltar elementos con niveles de cobertura por debajo de los umbrales de la suministrada por el usuario.
  • Pueden combinar datos de cobertura obtenidos en pruebas de instrumentación o prueba diferentes.
  • es posible volcar o restablecer datos de cobertura de forma remota y sin una salida JVM.
  • no requiere acceso al código fuente y se degrada con gracia con la disminución de cantidad de información de depuración disponible en las clases de entrada.
  • puede instrumento archivos .class individuales o .jars toda (en su lugar, si se desea). Eficiente cobertura subconjunto filtrado es posible, también.
  • Makefile e integración de compilación ANT están soportados en igualdad de condiciones.
  • La sobrecarga de tiempo de ejecución de instrumentación agregada es pequeña (5-20%) y el instrumentor bytecode sí mismo es muy rápido (sobre todo limitado por la velocidad de E/S de archivos). Sobrecarga de memoria es de unos pocos cientos de bytes por la clase Java.
  • EMMA es 100% puro Java, no tiene biblioteca externa dependencias y trabaja en cualquier Java 2 JVM (incluso 1.2).

Herramientas de EMMA

  • Plugin de IntelliJ Idea: Incluye soporte de cobertura de código de su propio y un plugin de EMMA
  • SonarQube EMMA plugin – permite el uso de análisis de EMMA en la plataforma de gestión de calidad de código SonarQube
  • Google CodePro AnalytiX
  • Emma Plugin Jenkins

Serenidad

Serenidad
Desarrolladores Michael Couck
Versión estable
1.0 / 08 de diciembre de 2013 ; hace 3 años )2013-12-08)
Sistema operativo Multiplataforma
Tipo Cobertura de código
Licencia de Apache Software License, Version 2.0
Sitio web wiki.Jenkins-ci.org/Display/ JENKINSSerenity + Plugin

Serenidad es un código abierto Kit de herramientas para medir e informar Java cobertura de código. Así como de cobertura, métricas de código principal se miden:-cyclometric complejidad, estabilidad, abstracto y distancia de la cañería. Los datos del informe es persistió a una base de datos de objeto y disponibles vía Hudson/Jenkins. La interfaz imita la interfaz de Eclipse IDE visualmente.

Serenidad aumenta dinámicamente el código de bytes, haciendo innecesario un paso post-compile. Se admiten proyectos de ANT y Maven. La configuración se hace en xml, sería un ejemplo de la hormiga:

    <!--propiedades de sistema de serenidad. -->
    < sysproperty clave ="included.packages" valor ="your.package.name.here" / >
    < sysproperty clave ="included.adapters" valor ="cobertura, complejidad y dependencia" / >
    <!--línea de comandos de la JVM de serenidad. -->
    < jvmarg linea ="-javaagent:serenity/serenity.jar" / >

Y sería un ejemplo de configuración de Maven:

    propiedades de < >
	< included.packages >-Dincluded.packages=your.package.name.here< /included.packages >
	< included.adapters >-Dincluded.adapters=coverage,complexity,dependency< /included.adapters >
    < / propiedades >
    < argLine >-javaagent:serenity/serenity.jar-Xms512m-Xmx1024m ${included.packages} ${included.adapters}< / argLine >

Para obtener un ejemplo completo de configuración consulte la wiki de Jenkins en https://wiki.Jenkins-CI.org/display/Jenkins/Serenity+plugin.

Jenkins esclavos así como proyectos de Maven multi módulo son compatibles.


Testwell CTC ++ Java

Testwell CTC ++
Desarrolladores Tecnología Verifysoft
Versión estable
8.0.1 / 30 de junio de 2016 ; hace 11 meses )2016-06-30)
Sistema operativo Multiplataforma
Tipo Cobertura de código
Licencia de Propietario
Sitio web [1]

Testwell CTC ++ es un Analizador de cobertura de código para C, C++, Java y C#. El desarrollo de esta herramienta comenzó en 1989 a Testwell en Finlandia. Desde 2013 el soporte y desarrollo ha sido continuada por Verifysoft Technology, una empresa de Offenburg, Alemania. Testwell CTC ++ análisis para todos los niveles de cobertura de código hasta Cobertura de condición/decisión modificada y la cobertura Multicondition.[13] La herramienta funciona con todas compiladores de. 14]

Ver también

  • Green bug and broom.svg Portal de prueba de software

Referencias

  1. ^ JaCoCo misión
  2. ^ Patroklos Papapetrou (19 de diciembre de 2012). "Código de comparación de herramientas (JaCoCo, Cobertura, Emma) cobertura en Sonar". Sólo Software importa. 3 de marzo 2013. 
  3. ^ Cobertura medida por pruebas de integración con Sonar – actualizado
  4. ^ a b "Código de cobertura". IntelliJ IDEA 12.0 Web ayuda. JetBrains. Archivado de el original en 26 de abril de 2013. 3 de marzo 2013. 
  5. ^ EclEmma, Eclipse plugin de cobertura de código
  6. ^ Jenkins JaCoCo Plugin
  7. ^ NetBeans JaCoCo soporte
  8. ^ Gradle JaCoCo Plugin
  9. ^ "¿por qué Clover USA instrumentación de código fuente?"
  10. ^ Optimización de la prueba
  11. ^ Archivos de cobertura de código de EMMA en SourceForge.net
  12. ^ Experto en Spring MVC y Web Flow; Por Seth Ladd, Steven Devijver, Darren Davison, Colin Yates, 289 p.
  13. ^ Testwell CTC ++ es compatible con todos los niveles de cobertura
  14. ^ Testwell CTC ++ es compatible con todos los compiladores

Enlaces externos

  • Trébol vs vs Cobertura JaCoCo vs CodeCover vs PITest comparación
  • JaCoCo vs Clover2
  • Escoja la herramienta de cobertura de código en el Sonar 2.2, un poco anticuado, como JaCoCo admite mientras tanto cobertura de rama.
  • Página del proyecto en SourceForge para EMMA
  • Pruebas de aplicaciones Java con Visual Studio Team Services

Otras Páginas

Obtenido de"https://en.copro.org/w/index.php?title=Java_Code_Coverage_Tools&oldid=780005224"