🤖

ROS2 Tips: colcon testのタイムアウト時間変更方法 ~ament_cmakeの場合~

2023/12/21に公開

はじめに

  • ament_cmakeで作成したROS2パッケージでのテストがタイムアウトで失敗してしまったのでその対処方法
    • colcon build後に、colcon testでタイムアウトエラーで失敗するケースを想定
  • 対象テストの種類は以下
    • 単体テスト (C++:gtest)
    • ノードレベルテスト (C++パッケージ)

方法

  • デフォルトのタイムアウト時間は60秒で、単体テスト、ノードレベルテストともに同様
  • 設定方法も同様で、各テストの引数に、TIMEOUTキーワードを入れる

単体テスト (C++:gtestの場合)

  • ament_add_gtestで、TIMEOUTを設定する

例: タイムアウトを100秒に設定

ament_add_gtest(my_func_test test/my_func_test.cpp
TIMEOUT 100
)

ノードレベルテスト

  • add_launch_testで、TIMEOUTを設定する

例: タイムアウトを100秒に設定

add_launch_test(my_node_test test/my_node_test_launch.py
TIMEOUT 100
)

まとめ

ROS2パッケージ(C++)の単体テストとノードレベルテストのタイムアウト時間について調査し、デフォルト値(60秒)を変更することができた。

参考

Discussion