scala code-coverage sonarqube

¿Existe una cobertura de código de Sonar equivalente para Scala?



code-coverage sonarqube (2)

Puedes usar SCCT o JaCoCo .

  • SCCT: admite Scala hasta la versión 2.10, pero el desarrollo parece estar estancado durante unos 9 meses. Es compatible con Scala de forma nativa y funciona tanto con Maven como con SBT.
  • JaCoCo está bajo desarrollo sctive. Admite cualquier versión de Scala, pero no de forma nativa, sino a nivel de bytecode. Por lo tanto, es posible que obtenga algunos artefactos, por ejemplo, algunos códigos solo obtienen una cobertura parcial, ya que el código de byte generado tiene alguna ruta de código teórica que JaCoCo ve (pero que nunca puede ejecutarse desde el código de Scala).

JaCoCo puede ser un poco difícil de configurar con Maven y Scala. Aquí algunos trucos:

  1. Usa la variante con el lanzador de agentes. No utilice la variante con el bytecode de preprocesamiento.
  2. Cuando se utiliza JaCoCo con Maven: hay una tarea de Maven ( jacoco:prepare-agent ) que producirá la expresión correcta para el agente de inicio y la almacenará en una propiedad. Luego puede usar esta propiedad como un parámetro de línea de comando cuando ejecute la máquina virtual Java.
  3. Parametrice el agente de inicio, de modo que múltiples lanzamientos (por ejemplo, para ejecutar diferentes pruebas) escriban en el mismo archivo de registro. Algunos complementos IDE tendrán problemas al analizar un archivo de este tipo, pero el complemento JaCoCo Hudson, por ejemplo, funciona bien.

Estoy tratando de configurar informes simples de cobertura de código para un equipo de codificación en Scala / Java mixto a aprox. Una relación de 90/10 y chocando con algunos obstáculos serios. Previamente, he configurado y administrado Sonar con gran éxito con un equipo solo de Java, pero no parece ser una opción.

El plug-in de Sonar w / Scala tiene errores y parece ser compatible con proyectos solo de Scala, no con proyectos mixtos.

SCCT se integra con nuestra compilación maven, pero falla con fallas de prueba falsas negativas repetidamente.

Encubierto ha sido mi mejor suerte hasta ahora; Se integra con nuestros informes de creación y generación de Maven, pero no se archivan ni se almacenan en ningún lugar como lo estarían con Sonar. Tampoco parece haber un índice central que simplifique la navegación por los informes generados.

He leído las respuestas aquí en StackOverflow, pero en gran parte se remontan a 2010 y sugieren que no hay una solución decente disponible. ¿Ha cambiado esto?

¿Hay algo obvio que me falta?


Sobre el lado de Sonar:

  • Sí, el desarrollo de Scala Sonar Plugin está actualmente bloqueado. Fue iniciado por la comunidad, pero nadie se ha ofrecido a hacerse cargo todavía. Si hay algunos voluntarios, estaremos encantados de guiarlos y ayudarlos.

  • En relación con el soporte de varios idiomas dentro de un solo proyecto, el soporte vendrá en Sonar. No puedo darle una guía para ello, pero actualmente estamos pensando en cómo agregar este soporte en Sonar en las próximas versiones, por lo que este es un problema a corto plazo.