Im Moment ist mir kein Tool bekannt, das Linux direkt unterstützt. Für das, was es wert ist, waren wir immer noch zufrieden mit unserer Code-Coverage-Lösung, die unser Web-Framework und unseren HTTP-Server unterstützt, der sowohl unter Linux als auch unter macOS läuft.
Unser auf dem Swift Package Manager basierendes Projekt Kitura verwendet Travis CI für die kontinuierliche Integration. Jeder Build wird beide kompilieren und testen Linux und macOS. Wir führen auch einen nächtlichen Build auf Travis CI durch, der Abdeckungsdaten generiert, die dann auf codecov.io hochgeladen werden, um Berichte wie diesen zu generieren.
Unter der Decke führt das Build-Skript swift package generate-xcodeproj
aus und dann xcodebuild test
mit aktivierter Codeabdeckung. Die Codeabdeckung wird nur in der macOS-Buildumgebung ausgeführt, die xcodebuild
enthält . Da unsere Linux- und macOS-Codepfade sehr ähnlich sind, sind die Abdeckungsstatistiken für unsere Zwecke gut genug, und wir führen immer noch Tests für jedes Betriebssystem unabhängig durch.
Dies ist tatsächlich möglich, indem --enable-code-coverage
übergeben wird bis swift test
$ swift test --enable-code-coverage
Dadurch wird ein .xctest
generiert Bündel in .build/x86_64-unknown-linux/debug/
und eine profdata-Datei in .build/x86_64-unknown-linux/debug/codecov/
unter Linux, die Sie dann an llvm-cov
weitergeben können um einen Bericht zu erstellen.
z. B.
$ llvm-cov report .build/x86_64-unknown-linux/debug/PredicatePackageTests.xctest -instr-profile=.build/x86_64-unknown-linux/debug/codecov/default.profdata -use-color
Dadurch wird ein Bericht wie der folgende generiert:
Siehe llvm-cov report --help
Für weitere Informationen kann es sogar HTML-Berichte erstellen.