【ソフトウェア開発】CUnit


久々にC言語を本格的に触っているのですが、単体テストでCUnitを使うことになりました。

Linux環境では使ったことがあるのですが、今回はVisual StudioでCUnitを使ってみました。
ざっくりですが、備忘録として設定方法を記録します。

まずCUnitのソースコード一式をダウンロードしてきます。
以下のURLから入手できます。この記事を書いている時で、最新バージョンは2.1-3でした。

http://sourceforge.net/projects/cunit/

入手したファイルは圧縮されているので、圧縮・解凍ソフトを使って解凍します。

解凍するとソースコードとVisual Studio用のソリューションファイルなどが出てきます。
私の場合は、Visual Studio 2008を使っているので、VC9の中のソリューション(CUnit.sln)を使いました。
2010以降を使っている場合もVC9を選択し、ソリューションファイルの変換をすればOKだと思います。

ソリューションファイルを開いたら、プロジェクトが5つ入っていると思います。
今回はCUnitのライブラリを生成したいので、「libcunit」のプロジェクトを設定します。
プロジェクトのプロパティページを表示し、「C/C++」→「コード生成」のランタイムライブラリを「マルチスレッド DLL(/MD)」に変更します。

あとはビルドするだけです。
出来上がったLibファイルは、「Release – Static Lib」の下に「libcunit.lib」としてできているはずです。

テストするプロジェクトでこのLibファイルをリンクしてやります。
ヘッダーファイルは、先ほど解凍したCUnitフォルダの下にある「include」フォルダのしたのものを利用すればOKです。

テストの書き方は以下のような感じで設定します。
※今回はスタブの設定方法は割愛します。

[C]

void add_test(CU_pSuite* suite)
{
//! ここにテストする関数を登録する
//例:    CU_add_test(*suite, “test01”, テスト関数名);

}

int main()
{
CU_pSuite suite;

CU_initialize_registry(); /* 初期化 */
suite = CU_add_suite(“Test”, NULL, NULL);
add_test(&suite);
CU_basic_set_mode(CU_BRM_VERBOSE);
CU_basic_run_tests(); /* テスト実行 */
CU_cleanup_registry(); /* 後始末 */

puts(“Enterを押して終了します。”);
getchar();

return 0;
}

[/C]

あとはテストプログラムを起動するだけでテストを実行してくれるので自動化ができてるというわけです。
本当はVC++環境でもカバレッジの取得ができれば嬉しいのですが、方法が分からない状況です。。。
色々調べていますので、方法が見つかれば紹介したいと思います。


この記事をシェアする

    Mask_Siva

    北の試される大地に生息しているSEです。
    楽しみながらプログラムを作ったり、ゲームで遊んだりしています。

    コメントをお待ちしております

    HTMLタグは利用できません

    Advertising



    新品/中古ゲーム販売 通販ショップの駿河屋

    Twitter

    仮面被り過ぎ@コンプレックス大佐
    @Mask_Siva

    • 久々の #五丈原 https://t.co/tlevLPTRuM
      about 53分 ago
    • バスの広告システム、Windowsで動いてるんだね。 このバスのWindowsは壊れてるみたいですが、、、 誰か起動ディスクで修復してあげて〜 https://t.co/RPXY63Jw7L
      about 1時間 ago
    • 先日の学科教員の方々による授業参観の報告書をいただきました。 見直さなきゃならない点もありますが、全教員から満点をもらえた項目もあったので、講義担当初年度としては及第点は取れたかな。 後期の講義に反映していきたいと思います。 #非常勤講師
      about 2時間 ago

    BGM

    TVアニメ「蒼穹のファフナー EXODUS」オリジナルサウンドトラック vol.1
    1 序章 -斉藤恒芳

    ↓の再生ボタンで再生できます
    色々な楽曲を試聴したいなら
    >>>こちら<<<

    Nico Nico Community

    Calendar

    2021年7月
     123
    45678910
    11121314151617
    18192021222324
    25262728293031

    Archive

    My WIsh List

    Amazonで気になっている物をまとめています。

    「これは良かった!」「こっちの方がいいよ!」というものがあれば、教えてください<(_ _)>

    https://amzn.to/3oof0rZ