GNU/Linux >> Tutoriales Linux >  >> Linux

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

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.


Linux
  1. ¿Cómo puedo especificar un icono con una ruta RELATIVA para un archivo de entrada de escritorio de Linux?

  2. ¿Cómo codificar un módulo del kernel de Linux?

  3. ¿Cómo puedo reanudar un trabajo detenido en Linux?

  4. ¿Cómo puedo buscar un nombre de usuario por id en Linux?

  5. Linux - ¿Cómo puedo ver lo que está esperando el disco IO?

Cómo instalar Anaconda en Linux

Cómo enumerar los paquetes instalados en Linux

Cómo instalar Setuptools para Python en Linux

Cómo enumerar todos los paquetes instalados en Linux

10 ejemplos de exclusión de Yum para omitir paquetes para la actualización de Yum de Linux (cómo excluir actualizaciones del kernel de Yum)

¿Cómo puedo perfilar el código C++ que se ejecuta en Linux?