読者です 読者をやめる 読者になる 読者になる

メモ書き

自分が後で見直すためにつけている作業のメモ書きです.それ以上の意味はありません

Cygwin で CUnit とかカバレッジ測定とか

Cygwin で cunit 使ったテストとカバレッジを計測する必要が出たので,作業内容を記録しておく

Cygwinがインストールされているのは前提としておく.

ツールの取得,インストール

$ git clone https://github.com/linux-test-project/lcov.git
  • lcovのインストールはmakeコマンドで(アンインストールの場合は make uninstall とする).
$ make install

CUnit でテスト

  • テストコード詳細は省略.実行の手順をざっくりと記述すると,以下の流れでプログラムを書けばいい.
    • CU_initialize_registry() を実行して
    • CU_add_suite を実行してテストスィート(CU_pSuite 型)のインスタンスを取得して
    • テストスィートに CU_add_test でテストを追加して
    • CU_console_run_tests(); でテストを実行して
    • CU_cleanup_registry(); で後片付けをして,おわり
  • コンパイル時の注意
    • CUnit.hをincludeする.テストの実行の仕方によってConsole.hなどをincludeする.
    • コンパイル時は CUnit.h 等のヘッダファイルが含まれるディレクトリを指定する.今回の場合は /usr/include/CUnit/
    • リンク時には -lcunit を指定する.
  • テストの実行
    • テストコードをリンクして実行ファイルを作り,ホスト上で実行する.コンソールアプリとして作った場合はメニュー形式で実行したりできるので,わかりやすい(この文章を見ている人はなんのことかわからないかもしれませんが,一度やってみてください).

lcovによるカバレッジ測定

    • lcov
      • -c で解析データのキャプチャを行うことを示す
      • "-d <ディレクトリ名>" で,解析ファイルのディレクトリを指定
      • "-o <ファイル名>" で出力ファイル名(.infoファイル)を指定

測定結果をHTML化

lcov付属のgenhtmlを使う.

$ genhtml -o output_directory infofile.info

output_directory というディレクトリに結果のHTMLファイルが格納される