YU2TA7KA's BLOG ~take one step at a time~

派生開発、組み込み開発周りのこと。

Unity(C言語用ユニットテストフレームワーク)の環境構築

はじめに

テスト駆動開発による組み込みプログラミング ―C言語とオブジェクト指向で学ぶアジャイルな設計で組込みTDDを勉強中です。本書ではC専用テストハーネスとして、Unityが紹介されています。これの環境構築を行います。ゲームじゃないほうです。

github.com

環境

OS Ubuntu 20.04.1 LTS

$ sudo apt install cmake

ファイル構造

ファイル構造は以下のようになります。

├── CMakeLists.txt
├── include
│  └── add.h
├── lib
│  └── Unity
├── src
│  └── add.c
└── test
   ├── runner
   │  ├── add_test_runner.c
   │  └── all_tests.c
   └── testcases
      └── add_test.c
フォルダ名 内容
src テスト対象のソースコード
include テスト対象のヘッダファイル
lib Unityコードを格納
test/testcases 個別のテストケースのコード
test/runner テストケースを実行するコード
CMakeLists.txt ビルドシナリオファイル

ソースコード

テスト環境に必要なファイルを作成したものをGitHubに登録しています。
github.com

テストの実行と結果

$ cd unity_trial
$ cmake .
$ make

$ ./unity_test 
Unity test run 1 of 1
unity_trial/test/testcases/add_test.c:23:TEST(Add, return_2):FAIL: Expected 2 Was 0

addという関数をテストしてしますが、関数の中身をreturn 0;にしているので、ちゃんとテストに失敗しています。

おわりに

入門できた感じがするので、本を読み進めていきたいと思います。