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:
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.