V tuto chvíli si nejsem vědom nástroje, který by přímo podporoval Linux. Za to, co stojí za to, jsme stále spokojeni s naším řešením pokrytí kódu, které podporuje náš webový rámec a HTTP server běžící na Linuxu i macOS.
Náš projekt Kitura založený na Swift Package Manager využívá Travis CI pro nepřetržitou integraci. Každé sestavení zkompiluje a spustí testy na obě Linux a macOS. Spouštíme také noční sestavení na Travis CI, které generuje údaje o pokrytí, které se pak nahrávají na codecov.io, aby se generovaly zprávy, jako je tento.
Pod krytem se spustí skript sestavení swift package generate-xcodeproj
a poté xcodebuild test
s povoleným pokrytím kódem. Pokrytí kódu běží pouze v prostředí sestavení macOS, které obsahuje xcodebuild
. Vzhledem k tomu, že naše cesty kódu pro Linux a macOS jsou velmi podobné, statistiky pokrytí jsou pro naše účely dostačující a stále provádíme testy nezávisle pro každý operační systém.
To je skutečně možné předáním --enable-code-coverage
až swift test
$ swift test --enable-code-coverage
Tím se vygeneruje .xctest
svazek v .build/x86_64-unknown-linux/debug/
a soubor profdata v .build/x86_64-unknown-linux/debug/codecov/
na Linuxu, který pak můžete předat do llvm-cov
vygenerovat zprávu.
např.
$ llvm-cov report .build/x86_64-unknown-linux/debug/PredicatePackageTests.xctest -instr-profile=.build/x86_64-unknown-linux/debug/codecov/default.profdata -use-color
Což vygeneruje zprávu, jako je následující zpráva:
Viz llvm-cov report --help
pro více informací může dokonce vytvářet HTML zprávy.