GitHub で公開している
asabon/PFD_Editor (github.com)
のリポジトリで「UnitTest + カバレッジ on GitHub Actions」ができるようになりました。
これは Visual Studio を使った C# の Windows アプリケーションだったので、
テスト環境も Windows です。
で、今度は Linux 環境での「UnitTest + カバレッジ on GitHub Actions」に挑戦してみます。
ちょうど、以前作ったちょっとしたリポジトリ
asabon/StateMachine (github.com)
があるので、これを使ってみます。
今回はテストフレームワークは GoogleTest を使ってみます。
そして、カバレッジレポート生成は以前使った ReportGenerator を使ってみます。
GoogleTest を使うための CMakeLists.txt の書き方は、
Quickstart: Building with CMake | GoogleTest
に説明があるので、基本的にこの通りに対応してみました。
具体的な CMakeLists.txt は上記リポジトリの main あるいはプルリクのブランチを見ていただくのがいいと思うので、ここではあまり示しません。
この手順のままだと、GoogleTest は使えるのですが、GoogleMock が使えないようで、ちょっと困ったな・・・という感じですが、ひとまず GoogleMock は使わないことにして、とりあえず話を先に進めてみます。
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --coverage")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} --coverage")
これによって、 .gcda と .gcno ファイルが作られました。
今回、テストプログラムを作るにあたって、
- statemachine.c ( テスト対象 )
- test.cpp ( テストコード )
- ReportGenerator は .gcda を食えない
- gcov を使って .gcda を .gcov に変換してから食わせる必要がある