うごくものづくりのために

技術的な備忘録がメインです。

「rostest」 の使い方

rostest - ROS Wiki

rostestを使ううれしさ

  • launchファイルと同様の手法で多数のノードを起動したりパラメータを設定した後に、ユニットテストを走らせることができる
  • C++ならgtest, Pythonならunittestによって作成したテストコードを実行可能

使い方

rostest/Writing - ROS Wiki

rostestを用いるrosパッケージのサンプル構成を一番最後に置いておくので参考にしてください。

  1. テストケースを書く

    C++ならgtest、Pythonならunittestでテストケースを書きます。

  2. “.test"ファイルを作る

    rosユーザならおなじみのlaunchファイルと同様の形式で記述します。 唯一異なるのは、ノードを立ち上げる際に<test>タグを用いる点です。

    <test>タグの詳細はこちらから。

  3. 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)の場合

調査中です。

  1. ビルド & テスト実行

    catkin_make run_tests

サンプル

GitHub - tilt-silvie/rostest_sample