CppUTest環境のマルチプラットホーム環境構築からチュートリアルまで
2017年3月版
課題
組み込みC言語の世界でもTDDできるらしい
というかレガシーコードをテストする環境だけでも切実に欲しい。。。
そんなときCppUTestなるフレームワークがオススメと偉い人が言っていた
ついでに職場の環境もついにwindows10に移行したしこのタイミングで色々やっときたい
当然ながら自分のMacとマルチプラットホームに対応してくれないと困る
windowsは特に環境構築がめんどうなので手探りで進めることに。。。
というかCppUTestの日本語情報って少ないですね
各種ソフトのバージョン
-
windows10 64bit
- cygwin 2.7.0
- autoconf 2.69
- automake 1.9.6
- cmake 3.6.2
- gcc-core 6.3.0
- gcc-g++ 6.3.0
- gdb 7.10.1
- git 2.8.3
- libtool 2.4.6
- make 4.2.1
- CppUTest 3.8
- cygwin 2.7.0
-
macOS sierra 10.12.3
- xcode 8.2.1
- CppUTest 3.8
ちなみにIDEはCLion 2016.3.3を使っています
マルチプラットホームにも対応しててよい感じ
windows10環境の構築
-
64bit版cygwinを導入 (32bit版でもいいのかもしれない)
- install from internet
- Root Directory はデフォルトで (C:¥cygwin64)
- local package はお好きにどうぞ
- Direct Connection
- Download sites は日本のサーバーを選ぶのが良いのでは (hogehoge.jpを探そう)
- select packageで上記した環境を構築すること
-
githubからCppUTestをcloneする
- お好きなディレクトリを選んでどうぞ
- 以下、CppUTestのディレクトリを<CppUTest>と表記します
-
cygwinでCppUTestをビルドする
とりあえず以下のコマンドをうてばOKcd <CppUTest>/cpputest_build ../configure make
そのまま以下のコマンドをうてばきちんとインストールできたか確認できる
make tdd
テストが実行されてpassしたりignoreしたりするはず
うまくインストールできていたら環境変数を設定しておくと良いCPPUTEST_HOME=<CppUTest>
なんならスクリプトもインストールしておくと良い
cd <CppUTest>/scripts chmod u+x *.sh ./InstallScripts.sh
-
CppUTestのバグ?に対応
チュートリアルを拾ってきてビルドしてみるが。。。こんな感じで試してみる
git clone https://github.com/davisford/cmake-cpputest cd cmake-cpputest mkdir build cd build cmake .. make
そのまま適当にチュートリアルサンプルを拾ってきてmakeしても通らないっぽい!!!
’<CppUTest>/src/CppUTest/libCppUTest.a'をmakeするルールがないとかでエラーになる
ライブラリファイルをきちんとしたディレクトリにコピーできてないっぽい<CppUTest>/cpputest_build/lib にある
libCppUTest.a
libCppUTestExt.aを**<CppUTest>/src/CppUTest** にコピーしてから上記のコマンドを実行。。。
晴れてmakeできるようになりました
mac環境の構築
Homebrewでインストールできるらしいけどgitでやっちゃいました
git clone以下windowsと同様にするだけでよい
<CppUTest>/cpputest_build/lib にある
libCppUTest.a
libCppUTestExt.aを**<CppUTest>/src/CppUTest** にコピー
を忘れないこと
おまけ:CLion環境の構築
macは特別なことは何もしないでいい
windowsもcygwinさえ設定すればいい
上記のチュートリアルサンプルをCLionで開くとcmakeのバージョン違いのために警告が出るが、ビルドに問題はない
CLionであればbuildのconfigでProgram argumentsに-vを追加しておくとテスト結果が常に見られて捗る
まとめ
とりあえず自分がcygwin導入からCppUTest環境構築まで一気通貫の日本語解説を欲しいと思ったので
ここまでやればでスタート地点には立てるのでは
今はひとまず手探りで英語と戦いながらゴリゴリとテストを書いております