現時点では、Linux を直接サポートするツールを認識していません。それだけの価値はありますが、Linux と macOS の両方で実行される Web フレームワークと HTTP サーバーをサポートするコード カバレッジ ソリューションには満足しています。
私たちの Swift Package Manager ベースのプロジェクトである Kitura は、Travis CI を使用して継続的な統合を行っています。各ビルドは両方でコンパイルおよびテストを実行します Linux と macOS。また、カバレッジ データを生成する Travis CI でナイトリー ビルドを実行し、それを codecov.io にアップロードして、このようなレポートを生成します。
内部では、ビルド スクリプトが swift package generate-xcodeproj
を実行します。 そして xcodebuild test
コード カバレッジが有効になっています。コード カバレッジは、xcodebuild
を含む macOS ビルド環境でのみ実行されます . Linux と macOS のコード パスは非常に似ているため、カバレッジ統計は目的に十分であり、OS ごとに個別にテストを実行しています。
これは --enable-code-coverage
を渡すことで実際に可能です swift test
へ
$ swift test --enable-code-coverage
.xctest
が生成されます .build/x86_64-unknown-linux/debug/
にバンドル .build/x86_64-unknown-linux/debug/codecov/
の profdata ファイル Linux では、llvm-cov
に渡すことができます レポートを生成します。
例
$ llvm-cov report .build/x86_64-unknown-linux/debug/PredicatePackageTests.xctest -instr-profile=.build/x86_64-unknown-linux/debug/codecov/default.profdata -use-color
次のレポートのようなレポートが生成されます:
llvm-cov report --help
を参照 詳細については、HTML レポートを作成することもできます。