launch_testing_ros

A package providing utilities for writing ROS2 enabled launch tests.

README

launch_testing_ros

Examples

talker_listener_launch_test.py

Usage:

launch_test test/examples/talker_listener_launch_test.py

This test launches the talker and listener example nodes from demo_nodes_py and interacts with them via their ROS interfaces. Remapping rules are used so that one of the tests can sit in between the talker and the listener and change the data on the fly.

check_node_launch_test.py

Usage:

launch_test test/examples/check_node_launch_test.py

There might be situations where nodes, once launched, take some time to actually start and we need to wait for the node to start to perform some action. We can simulate this using launch.actions.TimerAction. This example shows one way to detect when a node has been launched. We delay the launch by 5 seconds, and wait for the node to start with a timeout of 8 seconds.

check_msgs_launch_test.py

Usage:

launch_test test/examples/check_msgs_launch_test.py

Consider a problem statement where you need to launch a node and check if messages are published on a particular topic. This example demonstrates how to do that, using a talker node. It uses the Event object to end the test as soon as the first message is received on the chatter topic, with a timeout of 5 seconds.

set_param_launch_test.py

Usage:

launch_test test/examples/set_param_launch_test.py

This example demonstrates how to launch a node, set a parameter in it and check if that was successful.

test_fuzzy_data

This test gives an example of what a test that fuzzes data might look like. A ROS subscriber and publisher pair encapsulated in a DataRepublisher object changes the string “Hello World” to “Aloha World” as it travels between the talker and the listener.

test_listener_receives

This test publishes unique messages on the /chatter topic and asserts that the same messages go to the stdout of the listener node

test_talker_transmits

This test subscribes to the remapped /talker_chatter topic and makes sure the talker node also writes the data it’s transmitting to stdout