Saltar al contenido

¿Cómo puedo generar cobertura de código para paquetes Swift en Linux u OS X?

Este post ha sido analizado por especialistas así garantizamos la veracidad de este artículo.

Solución:

Esto es realmente posible pasando --enable-code-coverage para swift test

$ swift test --enable-code-coverage

Eso generará un .xctest agrupar en .build/x86_64-unknown-linux/debug/ y un archivo profdata en .build/x86_64-unknown-linux/debug/codecov/ en Linux que luego puede pasar a llvm-cov para generar un informe.

p.ej

$ llvm-cov report .build/x86_64-unknown-linux/debug/PredicatePackageTests.xctest -instr-profile=.build/x86_64-unknown-linux/debug/codecov/default.profdata -use-color

Lo que generará un informe como el siguiente informe:

informe

Ver llvm-cov report --help para más información, incluso puede producir informes HTML.

Por el momento, no conozco ninguna herramienta que admita directamente Linux. Por lo que vale, todavía estamos contentos con nuestra solución de cobertura de código que admite nuestro marco web y el servidor HTTP que se ejecuta en Linux y macOS.

Nuestro proyecto basado en Swift Package Manager, Kitura, utiliza Travis CI para la integración continua. Cada compilación compilará y ejecutará pruebas en ambas cosas Linux y macOS. También ejecutamos una compilación nocturna en Travis CI que genera datos de cobertura, que luego se cargan en codecov.io para generar informes como este.

Debajo de las sábanas, el script de compilación se ejecuta swift package generate-xcodeproj y luego xcodebuild test con cobertura de código habilitada. La cobertura de código solo se ejecuta en el entorno de compilación macOS, que contiene xcodebuild. Dado que nuestras rutas de código de Linux y macOS son muy similares, las estadísticas de cobertura son lo suficientemente buenas para nuestros propósitos y todavía estamos ejecutando pruebas de forma independiente para cada sistema operativo.

Si te mola el tema, tienes la opción de dejar un artículo acerca de qué le añadirías a esta sección.

¡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 *