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
をどうぞ。