GNU/Linux >> Linux の 問題 >  >> Linux

Linux または OS X で Swift パッケージのコード カバレッジを生成するにはどうすればよいですか?

現時点では、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 レポートを作成することもできます。


Linux
  1. rpmパッケージをビルドする方法

  2. 複数のプラットフォームでFpmを使用してLinuxパッケージを簡単に構築する方法

  3. Linuxにインストールされているすべてのパッケージを一覧表示する方法

  1. Linux で絶対パスを使用してファイルのリストを生成するにはどうすればよいですか?

  2. Linuxでファイルをシンボリックリンクするにはどうすればよいですか?

  3. Linux デスクトップ エントリ ファイルの相対パスでアイコンを指定するにはどうすればよいですか?

  1. Linux カーネルモジュールのコーディング方法は?

  2. Linux で停止したジョブを再開するにはどうすればよいですか?

  3. Linux ユーザーにとって Magic SysRq キーはどのように危険なのですか?