2012年7月29日日曜日

Google Test のアサーションだけ拝借する

テストフレームワークの失敗ログ出力は、ただの assert よりも情報が多くとても有用です。
そこで Google Test が使えない(リンクしない)場面でも、ヘッダーインクルードのみで使えるようにしてみました。

ソースコードはこちらから
github

使い方は、gtest/gtest.h の代わりに gtest_no_link.h をインクルードするだけです。

やっていることは簡単で、必要な定義だけヘッダーに書きだしただけのものになります。
すべてのアサーションに対応してませんが、よく使うアサーションは使えるはずです。

また、自作テストフレームワークの iutest にも取り込んだので
良ければ見ていただけると嬉しいです。

iutest(include/gtest/iutest_assertion_only.hpp)

2012年7月22日日曜日

開発機材へのダウンロードは速いに越したことはない

Windows アプリケーションの開発においては、プログラムのダウンロードというものはない。
ビルドできたら、F5 ですぐに実行できる。(Visual Stduio)

「ビルドが長い」というケースもあるが、
幸いなことに今のプロジェクトのビルド時間に不満はない。



そんなわけで割りと恵まれた環境で開発をしているのだが、
久しぶりに Windows 以外の環境と戯れると非常にイライラする。

プログラムのダウンロードに時間かかるので、
ちょっとプログラムを直しただけで数分待たされる。
これでは思考が止まってしまう。



とはいえ、改善策もないので待つしかない。
ダウンロードは速いに越したことはない。
のだが、半端に待たされるのが一番イライラする気がする。

待たされるのなら、コーヒーを淹れたり、お手洗いに行ったりする余裕があるくらい
待たされる方があきらめがつく。




だからといって、おそーい開発機材が欲しいってことにはならない。
これからドンドン大容量になっていくと思うと、頑張ってほしいなぁと思いました、マル

2012年6月29日金曜日

CCCC + Jenkins

CCCC とは
CCCC は、「C and C++ Code Counter」の略称で、C や C++ のコードメトリクスツールです。
こちらからダウンロードできます。

今回は、CCCC と Jenkins の連携について書きたいと思うので、
コードメトリクスや CCCC の使い方に関しては省かせて頂きます。

Jenkins との連携 - CCCC Plugin
CCCC Plugin というプラグインが既にあるので、それを使います。

設定としては、「Publish CCCC report」にチェックを入れて cccc が吐き出した xml のパスを入力するだけです。

試しに収集した結果がこちらです。



プロジェクト全体のコード行数や複雑度を見ることができます。

ただ、残念なことにプロジェクト全体やクラス単位でのメトリクス値を見ることはできているのですが、関数単位など細かい情報を見ることができません。
(※知らないだけで方法があるのかもしれませんが。)

CCCC の出力XMLをテスト
一番確認したい関数ごとの行数や複雑度を閲覧する方法が見つからなかったので、
CCCC の出力XMLを調べて Jenkins の「JUnitテスト結果の集計」で利用できる XML を出力するツールを作りました。

c4ju

試しに出力してみた結果がこちらです。






複雑な関数や長い関数を見つけやすくなりました。これで CCCC の恩恵が受けられます。