Herramientas de cobertura de código Java
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
- 5.1 Características
- 6 Serenidad
- 7 Testwell CTC ++ Java
- 8 Ver también
- 9 Referencias
- 10 Enlaces externos
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
|
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
Desarrolladores | Marc Hoffmann, Brock Janiczak, Evgeny Mandrikov, Mirko Friedenhagen |
---|---|
Versión estable |
0.7.9 / 05 de febrero de 2017
|
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
Desarrolladores | Atlassian |
---|---|
Versión estable |
4.1.2 / 11 de octubre de 2016
|
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
Desarrolladores | Steven Christou |
---|---|
Versión estable |
2.1.1 / 26 de febrero de 2015
|
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
Desarrolladores | Vlad Roubtsov |
---|---|
Versión estable |
2.1 / 13 de mayo de 2005
|
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
Desarrolladores | Michael Couck |
---|---|
Versión estable |
1.0 / 08 de diciembre de 2013
|
Sistema operativo | Multiplataforma |
Tipo | Cobertura de código |
Licencia de | Apache Software License, Version 2.0 |
Sitio web | wiki |
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
Desarrolladores | Tecnología Verifysoft |
---|---|
Versión estable |
8.0.1 / 30 de junio de 2016
|
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
- Portal de prueba de software
Referencias
- ^ JaCoCo misión
- ^ 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.
- ^ Cobertura medida por pruebas de integración con Sonar – actualizado
- ^ 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.
- ^ EclEmma, Eclipse plugin de cobertura de código
- ^ Jenkins JaCoCo Plugin
- ^ NetBeans JaCoCo soporte
- ^ Gradle JaCoCo Plugin
- ^ "¿por qué Clover USA instrumentación de código fuente?"
- ^ Optimización de la prueba
- ^ Archivos de cobertura de código de EMMA en SourceForge.net
- ^ Experto en Spring MVC y Web Flow; Por Seth Ladd, Steven Devijver, Darren Davison, Colin Yates, 289 p.
- ^ Testwell CTC ++ es compatible con todos los niveles de cobertura
- ^ 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
- Flowroute
- Deudas incobrables
- Prestamo de plazo
- Deuda
- Sofia de Sajonia-Weimar-Eisenach (1888-1913)
- Putnam County Courthouse (Florida)
- Conversocial
- Laser de femtosegundo para cirugia de cataratas
- Inundacion emocional
- Arnold Schwarzenegger (categoria empresarios de Los Angeles, California)
- Lawrance Bohm (seccion de vida Personal)
- Asbestine
- Politica de calidad