LoginSignup
3
2

More than 5 years have passed since last update.

MbedでCppUTestを試す

Posted at

Mbed環境を使用してCppUTestを動かした時の備忘メモ。基板はSTMicroelectronics社のNucleo F401REを使用した。

準備

Mbed環境を使用するにはラインセンス登録をする必要がある。ライセンス登録~プログラムの作成は下記を参考にした。

mbedではじめよう

以降、リンク先で示されているLチカのプログラムが作成された後の作業を記載する。

CppUTestライブラリのインポート

Mbed環境にポート済のCppUTestライブラリがあるため、今回はそれを使用した。

プログラムワークスペースにあるNucleo_blink_ledを選択した状態で[インポート]を選択する。[ライブラリ]タブを選択し、検索ウィンドウに「cpputest」と入力する。

import-cpputest.PNG

同じ作者でCpputest-mebed-portとcpputestの2つのライブラリが表示されるが、違いがわからなかった。

Mbedの公式ページでは、cpputestの方が紹介されていた(Do I need CppUTest port for Mbed SDK?の項参照)ので、今回はこちらをインポートする。

動作確認

main.cppを下記のように変更する。

#include "CppUTest/CommandLineTestRunner.h"

TEST_GROUP(FirstTestGroup) {};

TEST(FirstTestGroup, FirstTest) {
   FAIL("Fail me!");
}

int main(int ac, char** av) {
    return CommandLineTestRunner::RunAllTests(ac, av);
}

ビルドしたところ、下記のようなエラーが出た。

Error: Undefined symbol console (referred from ../../build/cpputest/src/Platforms/armcc/UtestPlatform.NUCLEO_F401RE.o).

cpputestライブラリのページを確認したところ、テストレポートをコンソール出力するには、UtestPlatform.cppを変更する必要があるかも、との記述有。

コンソール出力するには、consoleの定義をする必要があるため、main.cppにSerial console(SERIAL_TX, SERIAL_RX);と、mbed.hのインクルードを追加する。

ビルドが通った。あとは、バイナリをデバイスに保存すると、TeraTermなどで出力を確認できる。

test-report.PNG

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2