Dockerファイルを追加する
This commit is contained in:
parent
8ca1878481
commit
34df7c6785
19
Dockerfile.testtools
Normal file
19
Dockerfile.testtools
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
FROM debian:stable-slim
|
||||||
|
|
||||||
|
RUN apt update && apt install -y \
|
||||||
|
build-essential \
|
||||||
|
libgtest-dev \
|
||||||
|
cmake \
|
||||||
|
git \
|
||||||
|
python3 \
|
||||||
|
wget
|
||||||
|
|
||||||
|
# GoogleTest をビルド(Debianはヘッダだけなので手動ビルドが必要)
|
||||||
|
RUN cd /usr/src/gtest && \
|
||||||
|
cmake CMakeLists.txt && \
|
||||||
|
make && \
|
||||||
|
cp *.a /usr/lib
|
||||||
|
|
||||||
|
WORKDIR /work
|
||||||
|
|
||||||
|
ENTRYPOINT []
|
||||||
@ -8,6 +8,7 @@
|
|||||||
- [clang-tidy の使い方(C++向け)](#clang-tidy-の使い方c向け)
|
- [clang-tidy の使い方(C++向け)](#clang-tidy-の使い方c向け)
|
||||||
- [ccppcheck の使い方(C / C++ 両対応)](#ccppcheck-の使い方c--c-両対応)
|
- [ccppcheck の使い方(C / C++ 両対応)](#ccppcheck-の使い方c--c-両対応)
|
||||||
- [テスト](#テスト)
|
- [テスト](#テスト)
|
||||||
|
- [テスト環境を構築する](#テスト環境を構築する)
|
||||||
- [Doc(ドキュメンテーション)](#docドキュメンテーション)
|
- [Doc(ドキュメンテーション)](#docドキュメンテーション)
|
||||||
- [環境構築](#環境構築)
|
- [環境構築](#環境構築)
|
||||||
- [Dockerを活用する](#dockerを活用する-1)
|
- [Dockerを活用する](#dockerを活用する-1)
|
||||||
@ -137,7 +138,46 @@ cppcheck --enable=warning,style,performance,portability src/
|
|||||||
|
|
||||||
## テスト
|
## テスト
|
||||||
|
|
||||||
TODO: TBD
|
テストフレームワークの選定
|
||||||
|
|
||||||
|
* **C**
|
||||||
|
* Unity:
|
||||||
|
* 最軽量・C専用
|
||||||
|
* C言語の組込み開発でもよく使われる
|
||||||
|
* シングルヘッダに近い軽量テストツール
|
||||||
|
* doctest / googletest の C版のような位置付け
|
||||||
|
* CMocka: Unity より“しっかりしたテスト”をしたいときに最適
|
||||||
|
* Criterion: C言語でも“近代的なテスト開発”をしたい場合に良い
|
||||||
|
* **C++**
|
||||||
|
* GoogleTest:
|
||||||
|
* C++テストで最も使われる
|
||||||
|
* 機能が豊富:モック、パラメトリック、DeathTestなど
|
||||||
|
* Catch2: シンプルで読みやすいテストを作りたい人向け
|
||||||
|
* doctest: 個人開発や高速実行が必要なプロジェクトに最適
|
||||||
|
|
||||||
|
### テスト環境を構築する
|
||||||
|
|
||||||
|
|
||||||
|
* Unity(C言語の軽量テストフレームワーク)はパッケージとして提供されていません。https://github.com/ThrowTheSwitch/Unityから必要なファイルをダウンロードして使う
|
||||||
|
```sh
|
||||||
|
# unity.c,unity.h,unity_internals.h
|
||||||
|
git clone https://github.com/ThrowTheSwitch/Unity /opt/unity
|
||||||
|
```
|
||||||
|
* Alpine(musl libc)ではGTestのABIが合わず、gtest が正常にビルドできないケースが多い
|
||||||
|
* doctestとCatch2は普通にビルドで使えます
|
||||||
|
|
||||||
|
|
||||||
|
[Dockerfileはこちら](../Dockerfile.testtools)
|
||||||
|
|
||||||
|
|
||||||
|
テスト用のDockerイメージをビルドする
|
||||||
|
|
||||||
|
```sh
|
||||||
|
docker build -f Dockerfile.testtools -t c-test-tools .
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Doc(ドキュメンテーション)
|
## Doc(ドキュメンテーション)
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user