This topic explains how to run (and extend) PX4's ROS-based integration tests.
:::note MAVSDK Integration Testing is preferred when writing new tests. Use the ROS-based integration test framework for use cases that require ROS (e.g. object avoidance).
All PX4 integraton tests are executed automatically by our Continuous Integration system. :::
Tests can also be run with a GUI to see what's happening (by default the tests run "headless"):
The .test files launch the corresponding Python tests defined in integrationtests/python_src/px4_it/mavros/
Write a New MAVROS Test (Python)
This section explains how to write a new python test using ROS 1/MAVROS, test it, and add it to the PX4 test suite.
We recommend you review the existing tests as examples/inspiration (integrationtests/python_src/px4_it/mavros/). The official ROS documentation also contains information on how to use unittest (on which this test suite is based).
To write a new test:
Create a new test script by copying the empty test skeleton below:
Run the new test only
Start the simulator:
Run test (in a new shell):
Add new test node to a launch file
In test/ create a new <test_name>.test ROS launch file.
Call the test file using one of the base scripts rostest_px4_run.sh or rostest_avoidance_run.sh