Saat ini, saya tidak mengetahui adanya alat yang secara langsung mendukung Linux. Untuk apa nilainya, kami masih senang dengan solusi cakupan kode kami yang mendukung kerangka kerja web dan server HTTP kami yang berjalan di Linux dan macOS.
Proyek berbasis Swift Package Manager kami, Kitura, menggunakan Travis CI untuk integrasi berkelanjutan. Setiap bangunan akan mengompilasi dan menjalankan pengujian pada keduanya Linux dan macOS. Kami juga menjalankan nightly build di Travis CI yang menghasilkan data cakupan, yang kemudian diunggah ke codecov.io untuk menghasilkan laporan seperti ini.
Di bawah penutup, skrip build menjalankan swift package generate-xcodeproj
lalu xcodebuild test
dengan cakupan kode diaktifkan. Cakupan kode hanya berjalan di lingkungan build macOS, yang berisi xcodebuild
. Karena jalur kode Linux dan macOS kami sangat mirip, statistik cakupan cukup baik untuk tujuan kami, dan kami masih menjalankan pengujian secara terpisah untuk setiap OS.
Ini sebenarnya dimungkinkan dengan meneruskan --enable-code-coverage
ke swift test
$ swift test --enable-code-coverage
Itu akan menghasilkan .xctest
bundel di .build/x86_64-unknown-linux/debug/
dan file profdata di .build/x86_64-unknown-linux/debug/codecov/
di Linux yang kemudian dapat Anda teruskan ke llvm-cov
untuk menghasilkan laporan.
mis.
$ llvm-cov report .build/x86_64-unknown-linux/debug/PredicatePackageTests.xctest -instr-profile=.build/x86_64-unknown-linux/debug/codecov/default.profdata -use-color
Yang akan menghasilkan laporan seperti laporan berikut:
Lihat llvm-cov report --help
untuk informasi lebih lanjut, bahkan dapat menghasilkan laporan HTML.