Google Test (GoogleのC++向けユニットテストフレームワーク) 使ってみたメモ
簡単に使い方をメモ
ライブラリファイルを作る
READMEによると CMake がおすすめらしい。CMake いれてなかったので、brew install cmake
でインストールしておいた。そして、以下の手順でライブラリファイルを作成。
cd googletest mkdir build cmake ..
これで、カレントディレクトリの下に Makefile ができているので、
make
すると、libgtest.a と libtest_main.a が出来る。これらのライブラリをテストコードと一緒にリンクすることでテストコードを実行するファイルが生成される。libgtest.a はフレームワークの本体で、libgtest_main.a はフレームワークが用意しているmain()
関数。自分でmain()
関数を書く場合は、後者をリンクする必要はない。
テストコードのコンパイル〜実行
早速テストコードを書いてみる。以下のページからちょこっと拝借した。
その1:基本的な使い方 - エンジニアのソフトウェア的愛情
分かりやすくするため、わざと失敗するテストに書き換えた。
上記のコードを test.cc として保存して、以下のようにコンパイルする。このコードにはmain()
関数が無いので、libgtest_main.a とリンクしてあげることで、フレームワークが用意しているmain()
関数とリンクされる。
g++ -I${GTEST_DIR}/include test.cc ${GTEST_DIR}/build/libgtest_main.a -o test
上記の通りコンパイルすると、カレントディレクトリ配下に test ファイルが出来ているはずなので、そのまま実行してみる。以下のような結果になったら、ひとまずテストが動いていることが確認できた証拠。
ためしに、ソースコードを修正してみる。
int add(int x, int y) { return x + y; }
で、もう一度コンパイル&実行。
今度はテスト通った。
こんな感じでテストできるっぽい。使ってみよう。
HTMLとCSSだけでGrowlのディスプレイスタイルは作れる
Growl - Webkit Style Creation for Growl
に、HTMLとCSSだけで、独自のGrowlディスプレイスタイルを作る方法が書かれていたので自分でやってみました。以下の記事ではHTMLとCSSだけでGrowlスタイルを自作する手順を説明します。
Growlディスプレイスタイルのディレクトリ構造
まず、Growlディスプレイスタイルのディレクトリ構造は以下のようになっています。
<stylename>.growlStyle [directory] Contents [directory] Info.plist Resources [directory] main.css template.html
main.css と template.html が無い場合はデフォルトのcssとhtmlが使用されるのでなくても構わないですが、main.css はほぼ必須です(あとで理由を見せます)。
Growlディスプレイスタイルに必要なのはたったこれだけです。ね、簡単そうでしょ?
さっそく作ってみる
まずは、Info.plist を作ります。
冒頭のページに掲載されている内容をそのまま持ってきました。
この中で変更が必要なのは以下の箇所です。
あと、「Growlディスプレイスタイル」って書くのがメンドウなので、これ以降、単に「スタイル」と記述します。
- CFBundleName
- スタイルの名前です。GrowlのPreferenceペインに表示されます。
- CFBundleGetInfoString
- スタイルの簡単な説明です。
- CFBundleIdentifier
- スタイルを識別する名前です。 com.Growl.WebKit.<stylename> という形式で(<stylename>は自分のスタイル名に置き換えて)記述します。
- CFBundleShortVersionString
- スタイルのバージョンです
- CFBundleVersion
- ここもスタイルのバージョンです。上のバージョンと具体的に何が変わるのかよくわかってませんスミマセン。
- GrowlPluginAuthor
- 作者の名前です。
- GrowlHasShadow
- スタイル全体にドロップシャドウをかけるかどうか
- GrowlPaddingX
- 水平方向のパディング(単位:px)
- GrowlPaddingY
- 垂直方向のパディング(単位:px)
このあと、普通は template.html や main.css を作成するんですが、とりあえずここまでにしておきます。
とりあえずインストール
ここまでできれば、とりあえずスタイルとして動作する状態になりました。このままインストールしてみます。
Finder でスタイルが格納されているディレクトリを見ると、<sytlename>.growlStyle が以下のようGrowlのアイコンで表示されていると思うので、これをダブルクリックします。
すると、自動的にinfo.plistの内容から、Growlディスプレイスタイルだと判断されてGrowlにインストールされます。
試しにプレビューを見てみます。
でかすぎますね。
でも、これでとりあえずのスタイルは完成しました。これをベースにHTMLとCSSを調整してカッコ良くしていきます。
吹出し風のスタイルにする
Twitter用に吹出し風のスタイルにしてみることにしました。
Pure CSSな吹き出し - Weblog - hail2u.net
このページにCSSだけで吹出しを作る方法がが解説されています。この記事を参考に先ほどのスタイルの Resources ディレクトリに template.html ファイルを作成してみました。以下のようなコードになりました。
本来、CSSは main.css と外出しにするべきですが。めんどくさくなったので、template.html の中に直書きしてしました。ですので、main.css はありません。
template.htmlの中の %で囲まれたキーワードは、それぞれ、アイコン画像(image), タイトル(title), テキスト(text)に置き換えられます。以下のように Safari(などのWebKit系のブラウザ)で確認しながら調整するといいかもしれません。
![](http://gyazo.com/dc7489ee6738626612c243d5353d7f07.png)
template.htmlを保存したら、先ほどと同じようにインストールします。(すでにインストールされているものを「上書き」するかどうか聞いてきたら「はい」を選択します)
改めてプレビューで見てみると以下のような感じに...
まだ改善の余地はありますが、ひとまずここまでにしたいと思います。
最後に、今回作成したGrowlディスプレイスタイルのファイル一式を Github で公開していますので、そのリンクを晒しておきます。