CppUTestを試してみます。CppUTestの本家はここ。
http://cpputest.github.io/
現時点の最新をダウンロードします。
$ wget https://github.com/cpputest/cpputest/releases/download/v3.8/cpputest-3.8.zip展開して、
$ unzip cpputest-3.8.zip $ cd cpputest-3.8/cpputest_build/ビルドするだけです。なお、cmake版もあります。
$ ../configure $ make一応、CppUTest自身のテストもしておきます。
$ make tdd以下のようなコードを書いて、
#include "CppUTest/CommandLineTestRunner.h" #include "CppUTest/TestHarness.h" TEST_GROUP(TestSuite){}; TEST(TestSuite, Case1) { LONGS_EQUAL(3, 4); } int main(int argc, char *argv[]) { return RUN_ALL_TESTS(argc, argv); }ビルドします。
$ g++ -Icpputest-3.8/include test.cpp cpputest-3.8/cpputest_build/lib/libCppUTest.a実行すると、
$ ./a.out test.cpp:7: error: Failure in TEST(TestSuite, Case1) expected <3 0x3> but was <4 0x4> . Errors (1 failures, 1 tests, 1 ran, 1 checks, 0 ignored, 0 filtered out, 3 ms)となり、無事、エラーが検出できました。
なお、次のようにファイルの指定順序をうっかり間違うと、リンカエラーがでます。
$ g++ -Icpputest-3.8/include cpputest-3.8/cpputest_build/lib/libCppUTest.a test.cpp理由を知りたい方は、
http://www.yunabe.jp/docs/static_library.html
をどうぞ。