Por el momento, no conozco ninguna herramienta que admita directamente Linux. Por si sirve de algo, aún estamos contentos con nuestra solución de cobertura de código que es compatible con nuestro marco web y el servidor HTTP que se ejecuta tanto en Linux como en 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 ambos 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 cubiertas, el script de compilación 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 de 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.
Esto es realmente posible pasando --enable-code-coverage
a swift test
$ swift test --enable-code-coverage
Eso generará un .xctest
paquete 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.
por ejemplo
$ 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:
Ver llvm-cov report --help
para obtener más información, incluso puede producir informes HTML.