2018年4月30日月曜日

CppUTest を試してみる

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

0 件のコメント :