GNU/Linux >> Linux Esercitazione >  >> Linux

Come posso generare la copertura del codice per i pacchetti Swift su Linux o OS X?

Al momento, non sono a conoscenza di uno strumento che supporti direttamente Linux. Per quello che vale, siamo comunque soddisfatti della nostra soluzione di copertura del codice che supporta il nostro framework Web e il server HTTP che funziona sia su Linux che su macOS.

Il nostro progetto basato su Swift Package Manager, Kitura, utilizza Travis CI per l'integrazione continua. Ogni build compilerà ed eseguirà i test su entrambi Linux e macOS. Eseguiamo anche una build notturna su Travis CI che genera dati di copertura, che vengono poi caricati su codecov.io per generare rapporti come questo.

Dietro le quinte, lo script di compilazione esegue swift package generate-xcodeproj e poi xcodebuild test con la copertura del codice abilitata. La copertura del codice viene eseguita solo nell'ambiente di compilazione macOS, che contiene xcodebuild . Poiché i nostri percorsi di codice Linux e macOS sono molto simili, le statistiche sulla copertura sono abbastanza buone per i nostri scopi e stiamo ancora eseguendo test in modo indipendente per ciascun sistema operativo.


Questo è effettivamente possibile passando --enable-code-coverage a swift test

$ swift test --enable-code-coverage

Ciò genererà un .xctest pacchetto in .build/x86_64-unknown-linux/debug/ e un file profdata in .build/x86_64-unknown-linux/debug/codecov/ su Linux che puoi poi passare a llvm-cov per generare un report.

ad esempio

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

Che genererà un report come il seguente report:

Vedi llvm-cov report --help per ulteriori informazioni, può persino produrre report HTML.


Linux
  1. Come creare pacchetti rpm

  2. Come creare facilmente pacchetti Linux utilizzando Fpm per più piattaforme

  3. Come posso collegare simbolicamente un file in Linux?

  4. Come può un kernel Linux essere così piccolo?

  5. Come generare dati netflow in Linux

Come installare Anaconda su Linux

Come elencare i pacchetti installati in Linux

Come installare Setuptools per Python su Linux

Come elencare tutti i pacchetti installati in Linux

10 esempi di esclusione Yum per saltare i pacchetti per l'aggiornamento Yum di Linux (come escludere gli aggiornamenti del kernel Yum)

Come posso profilare il codice C++ in esecuzione su Linux?