Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
これならやれる。 仮想環境を使った Unityによる単体テストへの挑戦
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
misawa-san
October 30, 2022
Programming
770
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
これならやれる。 仮想環境を使った Unityによる単体テストへの挑戦
misawa-san
October 30, 2022
More Decks by misawa-san
See All by misawa-san
組込み向けテスト実行フレームワーク のご紹介
misawasan
1
3.9k
Introduction to Test Execution Automation Framework for Embedded Systems
misawasan
0
440
Other Decks in Programming
See All in Programming
AIとASP.NET Coreで雑Webアプリを作った話
mayuki
0
610
Semantic Version 単位で戦略を柔軟に変えて、パッケージアップデートを自動化する
daitasu
1
240
Mujeres en SEO Summit 2026 - Greatest Disaster Hits en Web Performance
guaca
0
180
New "Type" system on PicoRuby
pocke
1
920
ECSアプリログをFireLensでコスト削減しようとしたけど諦めた話 in Fargate×Node.js
akihisaikeda
2
4.2k
Oxcを導入して開発体験が向上した話
yug1224
4
310
代数的データ型って何が嬉しいの? #frontend_phpcon_do
kajitack
8
3.7k
Honoでのサプライチェーン侵害対策 〜 3つのライブラリに学ぶ
yusukebe
4
640
軽量Java基盤の設計 DIコンテナに頼らない、長期保守と1秒起動の実現 JJUG CCC 2026 Spring
macha64
0
510
Spring Security 実践 ─ GraphQL APIで実務に役立つ 認証・認可 を学ぶ
wagyu
0
230
Creating Composable Callables in Contemporary C++
rollbear
0
130
そのテスト、説明できますか?~LWテスト戦略FW~のご紹介
nakahara
0
110
Featured
See All Featured
The Spectacular Lies of Maps
axbom
PRO
1
810
[SF Ruby Conf 2025] Rails X
palkan
2
1.1k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.3k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.2k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
200
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.9k
How STYLIGHT went responsive
nonsquared
100
6.2k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
140
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
160
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
850
Chasing Engaging Ingredients in Design
codingconduct
0
220
My Coaching Mixtape
mlcsv
0
150
Transcript
これならやれる。 仮想環境を使った Unityによる単体テストへの挑戦 2022/10/30 組込みCI研究WG 見澤 1
2 C言語向けテストハーネスUnityは、 インストールが意外と大変です。 ですが、仮想環境(Docker)を使うと インストールが楽です。 今回はDockerが使える環境をなんとか用意でき る人向けにネイティブCコンパイラとUnityを使った 単体テストの導入方法の紹介をします。 次回はCMOCKを活用し、依存関係があるモジュー ルの単体テストの実施方法を紹介します。
▪参考文献 James W. Grenning (著), 蛸島 昭之 (監修), 笹井 崇司
(翻訳). テスト駆動開発による組み込みプログラミング ―C言語とオブジェクト指向で学ぶアジャイルな設計, オライリージャパン, 2013, 36p ▪参考Webサイト https://github.com/ThrowTheSwitch/ https://goyoki.hatenablog.com/entry/20120519/1337441410 https://qiita.com/iwatake2222/items/396959d1d7dffee479f7 https://futurismo.biz/archives/1281/ 3
▪前提 dockerが使える環境を用意する。 <私見> WindowsにWSL2をインストールして Linuxを使えるようにするのが良いと思います。 MACは使ったことないので、分かりません。 4
▪構成 プロダクトコード Docker(仮想環境) テストコード ローカル コンテナ (MadScienceLabDocker) Unity、 CMock、 Ceedling
ネイティブCコンパイラ マウント コーディング、コード修正 単体テスト実行 (コンテナ内 からローカル のディレクトリ を参照する) 5
理由 1.Linuxを使うスキルに自信が無い場合、 一からUnityが使える環境を 自分で準備できない。または時間がかかる。 2.MadScienceLabDockerを使うと、 Unityを含めた便利ツールが すぐ使えるようになる。 ▪MadScienceLabDocker Unityが使える環境を準備するのに、 本Dockerイメージを使うのがお勧め。(取得方法:次ページ)
6
▪MadScienceLabDockerの取得方法 $ git clone https://github.com/ThrowTheSwitch/MadScienceLabDocker.git 7
▪コンテナの実行方法 docker run -it --rm -v <local project path>:/project throwtheswitch/madsciencelab[:tag]
(例) 1.ローカルのMadScienceLabDockerディレクトリに移動 2.$docker run -it --rm -v ~/environment/dev/unittest2/hoge:/project/hoge throwtheswitch/madsciencelab 8
▪新規プロジェクト作成 ceedling new YourNewProjectName (例) 1.コンテナでマウントしたhogeディレクトリの中にあるhoge3ディレクトリに移動 2.新規プロジェクト作成 $ceedling new sample
テンプレート(src、test、etc)が入った、 指定したsampleという名前のディレクトリが作られる。 9
▪テストコードの作成 ローカルでテストコードを作成する。 テストコード 10 テストコード
▪プロダクトコードの作成 ローカルでプロダクトコードを作成する。 プロダクトコード 11 プロダクトコード
▪単体テスト実行 コンテナでceedlingコマンドを実行。 プロダクトコードの初期化 処理が未実装のため、 テストに失敗する。 プロダクトコード テストコード 12 初期化処理が未実装
▪プロダクトコードの修正 ローカルでプロダクトコードを修正する。 修正前 修正後 13
▪単体テストの再実行 コンテナでceedlingコマンドを実行。 14 テスト成功 修正前 修正後 テスト失敗
以上 15