「rostest」 の使い方
rostestを使ううれしさ
- launchファイルと同様の手法で多数のノードを起動したりパラメータを設定した後に、ユニットテストを走らせることができる
- C++ならgtest, Pythonならunittestによって作成したテストコードを実行可能
使い方
rostestを用いるrosパッケージのサンプル構成を一番最後に置いておくので参考にしてください。
テストケースを書く
“.test"ファイルを作る
rosユーザならおなじみのlaunchファイルと同様の形式で記述します。 唯一異なるのは、ノードを立ち上げる際に<test>タグを用いる点です。
<test>タグの詳細はこちらから。
CMakelists.txtの編集
gtest(c++)の場合
以下を追加。
if(CATKIN_ENABLE_TESTING) find_package(rostest REQUIRED) add_rostest_gtest(tests_mynode test/mynode.test test/test_mynode.cpp [more cpp files]) target_link_libraries(tests_mynode ${catkin_LIBRARIES}) endif()
3行目のadd_rostest_gtest(tests_mynode test/mynode.test src/test/test_mynode.cpp [more cpp files])
の部分は、一つ目のパラメータがテスト実行用バイナリの名前、 2つ目が対応する.testファイル、3つ目以降がテストケースが記述されたcppファイルです。
4行目のtarget_link_libraries
で、テスト実行用バイナリの名前を指定するのを忘れないでください。
###### unittest(python)の場合
調査中です。
ビルド & テスト実行
catkin_make run_tests