#blognavi
UnityとCMockなどを統一して使える環境みたいなCeedlingを使ってみる。
ScalaでいうところのSBTみたいな感じ。Rubyが必要
1.インストール
RubyとRakeとGEMがそろっている環境で以下を実行
gem install ceedling
2.プロジェクトの作成
インストールされるとceedlingが実行できるようになるので、プロジェクトを新規作成する。
ceedling new testprj
testprjはプロジェクト名。実行すると、プロジェクトが作成される。
testprj
|
+-- build
+-- project.yml
+-- rakefile.rb
+-- src
+-- test
+-- vendor
この中のsrcフォルダにProdcutコード、testフォルダにテストコードを作る。
src/myfunc.h
#ifndef __MYFUNC_H__
#define __MYFUNC_H__
int myfunc(int a, int b);
#endif
src/myfunc.c
#include <stdio.h>
#include "myfunc.h"
#include "dummy.h"
int myfunc(int a, int b)
{
printf("test\n");
dummy();
return (a+b);
}
src/dummy.h
#ifndef __DUMMY_H__
#define __DUMMY_H__
int dummy(void);
#endif
src/dummy.c
#include "dummy.h"
int dummy(void)
{
return 0;
}
test/test_myfunc.c
#include "unity.h"
#include "myfunc.h"
#include "mock_dummy.h"
void setUp(void)
{
}
void tearDown(void)
{
}
void test_Myfunc(void)
{
dummy_ExpectAndReturn( 0 );
TEST_ASSERT_EQUAL( 3, myfunc(1,2) );
}
CMockは、ダミー関数のヘッダに"mock_"をつけてインクルードすれば、自動的に作成される。便利!
テスト関数は、ファイル名に注意する。test_XXX.cにする必要がある模様で、ファイル名がNGだと
Ceedlingに認識されずに、テストが実行されない。認識されているファイル数を表示するには以下の
コマンドを実行する。
rake files:test
(in PATHTOPROJ/testprj)
test files:
- test/test_myfunc.c
file count: 1
3.テスト実行
テストを実行するのは、
rake test:all
を実行する。
Test 'test_myfunc.c'
--------------------
Running test_myfunc.out...
-----------
TEST OUTPUT
-----------
[test_myfunc.c]
- "test"
- ""
--------------------
OVERALL TEST SUMMARY
--------------------
TESTED: 1
PASSED: 1
FAILED: 0
IGNORED: 0
なお、他のコマンドを表示するには、rake -Tを実行する。
カテゴリ: [
日記] - &trackback() - 2016年04月03日 11:04:50
#blognavi
最終更新:2016年04月03日 11:25