Package Summary
| Version | 0.4.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/selfpatch/ros2_medkit.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-03-22 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- bburda
Authors
ros2_medkit_integration_tests
Integration tests, demo nodes, and shared test utilities for ros2_medkit.
Overview
This package contains everything needed to validate the ros2_medkit system end-to-end:
- Demo nodes – automotive-themed C++ nodes (sensors, actuators, services, actions) that produce realistic ROS 2 traffic for testing
- Feature tests – focused tests that validate individual API features (data access, operations, faults, SSE, CORS, auth, etc.)
- Scenario tests – end-to-end stories that exercise multi-step workflows (fault lifecycle, action execution, discovery modes, subscriptions, etc.)
-
Shared test library (
ros2_medkit_test_utils) – base test case, launch helpers, and assertion utilities shared across all test files
Package Structure
ros2_medkit_integration_tests/
demo_nodes/ # C++ demo node sources
launch/ # demo_nodes.launch.py
ros2_medkit_test_utils/
__init__.py
constants.py # DEFAULT_PORT, timeouts
coverage.py # GCOV_PREFIX helpers for CI
gateway_test_case.py # GatewayTestCase base class
launch_helpers.py # create_test_launch(), DEMO_NODE_REGISTRY
test/
features/ # Focused API feature tests
scenarios/ # End-to-end workflow tests
Running Tests
# Build everything
colcon build --symlink-install
source install/setup.bash
# All integration tests
colcon test --packages-select ros2_medkit_integration_tests
colcon test-result --verbose
# Single test
colcon test --packages-select ros2_medkit_integration_tests \
--ctest-args -R test_data_read
# Feature tests only
colcon test --packages-select ros2_medkit_integration_tests \
--ctest-args -L feature
# Scenario tests only
colcon test --packages-select ros2_medkit_integration_tests \
--ctest-args -L scenario
Demo Nodes
Launch all demo nodes for manual testing or the web UI:
ros2 launch ros2_medkit_integration_tests demo_nodes.launch.py
| Node | Namespace | Type | Description |
|---|---|---|---|
temp_sensor |
/powertrain/engine |
Publisher | Engine temperature (2 Hz) |
rpm_sensor |
/powertrain/engine |
Publisher | RPM readings (2 Hz) |
pressure_sensor |
/chassis/brakes |
Publisher | Brake pressure (2 Hz) |
status_sensor |
/body/door/front_left |
Publisher | Door open/closed (0.5 Hz) |
lidar_sensor |
/perception/lidar |
Publisher + Fault reporter | LaserScan with fault detection |
actuator |
/chassis/brakes |
Subscriber + Publisher | Brake actuator (command/feedback) |
controller |
/body/lights |
Subscriber + Publisher | Light controller (command/status) |
calibration |
/powertrain/engine |
Service | Trigger-based calibration |
long_calibration |
/powertrain/engine |
Action | Fibonacci-based long-running action |
Writing New Tests
Feature Test Template
Feature tests validate a single API capability:
```python from ros2_medkit_test_utils.gateway_test_case import GatewayTestCase from ros2_medkit_test_utils.launch_helpers import create_test_launch
def generate_test_description(): return create_test_launch( demo_nodes=[‘temp_sensor’], fault_manager=False, )
class TestMyFeature(GatewayTestCase): MIN_EXPECTED_APPS = 1 REQUIRED_APPS = {‘temp_sensor’}
def test_something(self):
File truncated at 100 lines see the full file
Changelog for package ros2_medkit_integration_tests
0.4.0 (2026-03-20)
- Integration tests for SOVD resource locking (acquire, release, extend, fault clear with locks, expiration, parent propagation)
- Integration tests for SOVD script execution endpoints (all formats, params, output, failure, lifecycle)
- Integration tests for graph provider plugin (external plugin loading, entity introspection)
- Integration tests for beacon discovery plugins (topic beacon, parameter beacon)
- Integration tests for OpenAPI/docs endpoint
- Integration tests for logging endpoints (
/logs,/logs/configuration) - Integration tests for linux introspection plugins (launch_testing and Docker-based)
- Port isolation per integration test via CMake-assigned unique ports
-
ROS_DOMAIN_IDisolation for integration tests - Build: use shared cmake modules from
ros2_medkit_cmakepackage - Contributors: \@bburda
0.3.0 (2026-02-27)
Package Dependencies
System Dependencies
| Name |
|---|
| python3-requests |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged ros2_medkit_integration_tests at Robotics Stack Exchange
Package Summary
| Version | 0.4.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/selfpatch/ros2_medkit.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-03-22 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- bburda
Authors
ros2_medkit_integration_tests
Integration tests, demo nodes, and shared test utilities for ros2_medkit.
Overview
This package contains everything needed to validate the ros2_medkit system end-to-end:
- Demo nodes – automotive-themed C++ nodes (sensors, actuators, services, actions) that produce realistic ROS 2 traffic for testing
- Feature tests – focused tests that validate individual API features (data access, operations, faults, SSE, CORS, auth, etc.)
- Scenario tests – end-to-end stories that exercise multi-step workflows (fault lifecycle, action execution, discovery modes, subscriptions, etc.)
-
Shared test library (
ros2_medkit_test_utils) – base test case, launch helpers, and assertion utilities shared across all test files
Package Structure
ros2_medkit_integration_tests/
demo_nodes/ # C++ demo node sources
launch/ # demo_nodes.launch.py
ros2_medkit_test_utils/
__init__.py
constants.py # DEFAULT_PORT, timeouts
coverage.py # GCOV_PREFIX helpers for CI
gateway_test_case.py # GatewayTestCase base class
launch_helpers.py # create_test_launch(), DEMO_NODE_REGISTRY
test/
features/ # Focused API feature tests
scenarios/ # End-to-end workflow tests
Running Tests
# Build everything
colcon build --symlink-install
source install/setup.bash
# All integration tests
colcon test --packages-select ros2_medkit_integration_tests
colcon test-result --verbose
# Single test
colcon test --packages-select ros2_medkit_integration_tests \
--ctest-args -R test_data_read
# Feature tests only
colcon test --packages-select ros2_medkit_integration_tests \
--ctest-args -L feature
# Scenario tests only
colcon test --packages-select ros2_medkit_integration_tests \
--ctest-args -L scenario
Demo Nodes
Launch all demo nodes for manual testing or the web UI:
ros2 launch ros2_medkit_integration_tests demo_nodes.launch.py
| Node | Namespace | Type | Description |
|---|---|---|---|
temp_sensor |
/powertrain/engine |
Publisher | Engine temperature (2 Hz) |
rpm_sensor |
/powertrain/engine |
Publisher | RPM readings (2 Hz) |
pressure_sensor |
/chassis/brakes |
Publisher | Brake pressure (2 Hz) |
status_sensor |
/body/door/front_left |
Publisher | Door open/closed (0.5 Hz) |
lidar_sensor |
/perception/lidar |
Publisher + Fault reporter | LaserScan with fault detection |
actuator |
/chassis/brakes |
Subscriber + Publisher | Brake actuator (command/feedback) |
controller |
/body/lights |
Subscriber + Publisher | Light controller (command/status) |
calibration |
/powertrain/engine |
Service | Trigger-based calibration |
long_calibration |
/powertrain/engine |
Action | Fibonacci-based long-running action |
Writing New Tests
Feature Test Template
Feature tests validate a single API capability:
```python from ros2_medkit_test_utils.gateway_test_case import GatewayTestCase from ros2_medkit_test_utils.launch_helpers import create_test_launch
def generate_test_description(): return create_test_launch( demo_nodes=[‘temp_sensor’], fault_manager=False, )
class TestMyFeature(GatewayTestCase): MIN_EXPECTED_APPS = 1 REQUIRED_APPS = {‘temp_sensor’}
def test_something(self):
File truncated at 100 lines see the full file
Changelog for package ros2_medkit_integration_tests
0.4.0 (2026-03-20)
- Integration tests for SOVD resource locking (acquire, release, extend, fault clear with locks, expiration, parent propagation)
- Integration tests for SOVD script execution endpoints (all formats, params, output, failure, lifecycle)
- Integration tests for graph provider plugin (external plugin loading, entity introspection)
- Integration tests for beacon discovery plugins (topic beacon, parameter beacon)
- Integration tests for OpenAPI/docs endpoint
- Integration tests for logging endpoints (
/logs,/logs/configuration) - Integration tests for linux introspection plugins (launch_testing and Docker-based)
- Port isolation per integration test via CMake-assigned unique ports
-
ROS_DOMAIN_IDisolation for integration tests - Build: use shared cmake modules from
ros2_medkit_cmakepackage - Contributors: \@bburda
0.3.0 (2026-02-27)
Package Dependencies
System Dependencies
| Name |
|---|
| python3-requests |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged ros2_medkit_integration_tests at Robotics Stack Exchange
Package Summary
| Version | 0.4.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/selfpatch/ros2_medkit.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-03-22 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- bburda
Authors
ros2_medkit_integration_tests
Integration tests, demo nodes, and shared test utilities for ros2_medkit.
Overview
This package contains everything needed to validate the ros2_medkit system end-to-end:
- Demo nodes – automotive-themed C++ nodes (sensors, actuators, services, actions) that produce realistic ROS 2 traffic for testing
- Feature tests – focused tests that validate individual API features (data access, operations, faults, SSE, CORS, auth, etc.)
- Scenario tests – end-to-end stories that exercise multi-step workflows (fault lifecycle, action execution, discovery modes, subscriptions, etc.)
-
Shared test library (
ros2_medkit_test_utils) – base test case, launch helpers, and assertion utilities shared across all test files
Package Structure
ros2_medkit_integration_tests/
demo_nodes/ # C++ demo node sources
launch/ # demo_nodes.launch.py
ros2_medkit_test_utils/
__init__.py
constants.py # DEFAULT_PORT, timeouts
coverage.py # GCOV_PREFIX helpers for CI
gateway_test_case.py # GatewayTestCase base class
launch_helpers.py # create_test_launch(), DEMO_NODE_REGISTRY
test/
features/ # Focused API feature tests
scenarios/ # End-to-end workflow tests
Running Tests
# Build everything
colcon build --symlink-install
source install/setup.bash
# All integration tests
colcon test --packages-select ros2_medkit_integration_tests
colcon test-result --verbose
# Single test
colcon test --packages-select ros2_medkit_integration_tests \
--ctest-args -R test_data_read
# Feature tests only
colcon test --packages-select ros2_medkit_integration_tests \
--ctest-args -L feature
# Scenario tests only
colcon test --packages-select ros2_medkit_integration_tests \
--ctest-args -L scenario
Demo Nodes
Launch all demo nodes for manual testing or the web UI:
ros2 launch ros2_medkit_integration_tests demo_nodes.launch.py
| Node | Namespace | Type | Description |
|---|---|---|---|
temp_sensor |
/powertrain/engine |
Publisher | Engine temperature (2 Hz) |
rpm_sensor |
/powertrain/engine |
Publisher | RPM readings (2 Hz) |
pressure_sensor |
/chassis/brakes |
Publisher | Brake pressure (2 Hz) |
status_sensor |
/body/door/front_left |
Publisher | Door open/closed (0.5 Hz) |
lidar_sensor |
/perception/lidar |
Publisher + Fault reporter | LaserScan with fault detection |
actuator |
/chassis/brakes |
Subscriber + Publisher | Brake actuator (command/feedback) |
controller |
/body/lights |
Subscriber + Publisher | Light controller (command/status) |
calibration |
/powertrain/engine |
Service | Trigger-based calibration |
long_calibration |
/powertrain/engine |
Action | Fibonacci-based long-running action |
Writing New Tests
Feature Test Template
Feature tests validate a single API capability:
```python from ros2_medkit_test_utils.gateway_test_case import GatewayTestCase from ros2_medkit_test_utils.launch_helpers import create_test_launch
def generate_test_description(): return create_test_launch( demo_nodes=[‘temp_sensor’], fault_manager=False, )
class TestMyFeature(GatewayTestCase): MIN_EXPECTED_APPS = 1 REQUIRED_APPS = {‘temp_sensor’}
def test_something(self):
File truncated at 100 lines see the full file
Changelog for package ros2_medkit_integration_tests
0.4.0 (2026-03-20)
- Integration tests for SOVD resource locking (acquire, release, extend, fault clear with locks, expiration, parent propagation)
- Integration tests for SOVD script execution endpoints (all formats, params, output, failure, lifecycle)
- Integration tests for graph provider plugin (external plugin loading, entity introspection)
- Integration tests for beacon discovery plugins (topic beacon, parameter beacon)
- Integration tests for OpenAPI/docs endpoint
- Integration tests for logging endpoints (
/logs,/logs/configuration) - Integration tests for linux introspection plugins (launch_testing and Docker-based)
- Port isolation per integration test via CMake-assigned unique ports
-
ROS_DOMAIN_IDisolation for integration tests - Build: use shared cmake modules from
ros2_medkit_cmakepackage - Contributors: \@bburda
0.3.0 (2026-02-27)
Package Dependencies
System Dependencies
| Name |
|---|
| python3-requests |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged ros2_medkit_integration_tests at Robotics Stack Exchange
Package Summary
| Version | 0.4.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/selfpatch/ros2_medkit.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-03-22 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- bburda
Authors
ros2_medkit_integration_tests
Integration tests, demo nodes, and shared test utilities for ros2_medkit.
Overview
This package contains everything needed to validate the ros2_medkit system end-to-end:
- Demo nodes – automotive-themed C++ nodes (sensors, actuators, services, actions) that produce realistic ROS 2 traffic for testing
- Feature tests – focused tests that validate individual API features (data access, operations, faults, SSE, CORS, auth, etc.)
- Scenario tests – end-to-end stories that exercise multi-step workflows (fault lifecycle, action execution, discovery modes, subscriptions, etc.)
-
Shared test library (
ros2_medkit_test_utils) – base test case, launch helpers, and assertion utilities shared across all test files
Package Structure
ros2_medkit_integration_tests/
demo_nodes/ # C++ demo node sources
launch/ # demo_nodes.launch.py
ros2_medkit_test_utils/
__init__.py
constants.py # DEFAULT_PORT, timeouts
coverage.py # GCOV_PREFIX helpers for CI
gateway_test_case.py # GatewayTestCase base class
launch_helpers.py # create_test_launch(), DEMO_NODE_REGISTRY
test/
features/ # Focused API feature tests
scenarios/ # End-to-end workflow tests
Running Tests
# Build everything
colcon build --symlink-install
source install/setup.bash
# All integration tests
colcon test --packages-select ros2_medkit_integration_tests
colcon test-result --verbose
# Single test
colcon test --packages-select ros2_medkit_integration_tests \
--ctest-args -R test_data_read
# Feature tests only
colcon test --packages-select ros2_medkit_integration_tests \
--ctest-args -L feature
# Scenario tests only
colcon test --packages-select ros2_medkit_integration_tests \
--ctest-args -L scenario
Demo Nodes
Launch all demo nodes for manual testing or the web UI:
ros2 launch ros2_medkit_integration_tests demo_nodes.launch.py
| Node | Namespace | Type | Description |
|---|---|---|---|
temp_sensor |
/powertrain/engine |
Publisher | Engine temperature (2 Hz) |
rpm_sensor |
/powertrain/engine |
Publisher | RPM readings (2 Hz) |
pressure_sensor |
/chassis/brakes |
Publisher | Brake pressure (2 Hz) |
status_sensor |
/body/door/front_left |
Publisher | Door open/closed (0.5 Hz) |
lidar_sensor |
/perception/lidar |
Publisher + Fault reporter | LaserScan with fault detection |
actuator |
/chassis/brakes |
Subscriber + Publisher | Brake actuator (command/feedback) |
controller |
/body/lights |
Subscriber + Publisher | Light controller (command/status) |
calibration |
/powertrain/engine |
Service | Trigger-based calibration |
long_calibration |
/powertrain/engine |
Action | Fibonacci-based long-running action |
Writing New Tests
Feature Test Template
Feature tests validate a single API capability:
```python from ros2_medkit_test_utils.gateway_test_case import GatewayTestCase from ros2_medkit_test_utils.launch_helpers import create_test_launch
def generate_test_description(): return create_test_launch( demo_nodes=[‘temp_sensor’], fault_manager=False, )
class TestMyFeature(GatewayTestCase): MIN_EXPECTED_APPS = 1 REQUIRED_APPS = {‘temp_sensor’}
def test_something(self):
File truncated at 100 lines see the full file
Changelog for package ros2_medkit_integration_tests
0.4.0 (2026-03-20)
- Integration tests for SOVD resource locking (acquire, release, extend, fault clear with locks, expiration, parent propagation)
- Integration tests for SOVD script execution endpoints (all formats, params, output, failure, lifecycle)
- Integration tests for graph provider plugin (external plugin loading, entity introspection)
- Integration tests for beacon discovery plugins (topic beacon, parameter beacon)
- Integration tests for OpenAPI/docs endpoint
- Integration tests for logging endpoints (
/logs,/logs/configuration) - Integration tests for linux introspection plugins (launch_testing and Docker-based)
- Port isolation per integration test via CMake-assigned unique ports
-
ROS_DOMAIN_IDisolation for integration tests - Build: use shared cmake modules from
ros2_medkit_cmakepackage - Contributors: \@bburda
0.3.0 (2026-02-27)
Package Dependencies
System Dependencies
| Name |
|---|
| python3-requests |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged ros2_medkit_integration_tests at Robotics Stack Exchange
Package Summary
| Version | 0.4.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/selfpatch/ros2_medkit.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-03-22 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- bburda
Authors
ros2_medkit_integration_tests
Integration tests, demo nodes, and shared test utilities for ros2_medkit.
Overview
This package contains everything needed to validate the ros2_medkit system end-to-end:
- Demo nodes – automotive-themed C++ nodes (sensors, actuators, services, actions) that produce realistic ROS 2 traffic for testing
- Feature tests – focused tests that validate individual API features (data access, operations, faults, SSE, CORS, auth, etc.)
- Scenario tests – end-to-end stories that exercise multi-step workflows (fault lifecycle, action execution, discovery modes, subscriptions, etc.)
-
Shared test library (
ros2_medkit_test_utils) – base test case, launch helpers, and assertion utilities shared across all test files
Package Structure
ros2_medkit_integration_tests/
demo_nodes/ # C++ demo node sources
launch/ # demo_nodes.launch.py
ros2_medkit_test_utils/
__init__.py
constants.py # DEFAULT_PORT, timeouts
coverage.py # GCOV_PREFIX helpers for CI
gateway_test_case.py # GatewayTestCase base class
launch_helpers.py # create_test_launch(), DEMO_NODE_REGISTRY
test/
features/ # Focused API feature tests
scenarios/ # End-to-end workflow tests
Running Tests
# Build everything
colcon build --symlink-install
source install/setup.bash
# All integration tests
colcon test --packages-select ros2_medkit_integration_tests
colcon test-result --verbose
# Single test
colcon test --packages-select ros2_medkit_integration_tests \
--ctest-args -R test_data_read
# Feature tests only
colcon test --packages-select ros2_medkit_integration_tests \
--ctest-args -L feature
# Scenario tests only
colcon test --packages-select ros2_medkit_integration_tests \
--ctest-args -L scenario
Demo Nodes
Launch all demo nodes for manual testing or the web UI:
ros2 launch ros2_medkit_integration_tests demo_nodes.launch.py
| Node | Namespace | Type | Description |
|---|---|---|---|
temp_sensor |
/powertrain/engine |
Publisher | Engine temperature (2 Hz) |
rpm_sensor |
/powertrain/engine |
Publisher | RPM readings (2 Hz) |
pressure_sensor |
/chassis/brakes |
Publisher | Brake pressure (2 Hz) |
status_sensor |
/body/door/front_left |
Publisher | Door open/closed (0.5 Hz) |
lidar_sensor |
/perception/lidar |
Publisher + Fault reporter | LaserScan with fault detection |
actuator |
/chassis/brakes |
Subscriber + Publisher | Brake actuator (command/feedback) |
controller |
/body/lights |
Subscriber + Publisher | Light controller (command/status) |
calibration |
/powertrain/engine |
Service | Trigger-based calibration |
long_calibration |
/powertrain/engine |
Action | Fibonacci-based long-running action |
Writing New Tests
Feature Test Template
Feature tests validate a single API capability:
```python from ros2_medkit_test_utils.gateway_test_case import GatewayTestCase from ros2_medkit_test_utils.launch_helpers import create_test_launch
def generate_test_description(): return create_test_launch( demo_nodes=[‘temp_sensor’], fault_manager=False, )
class TestMyFeature(GatewayTestCase): MIN_EXPECTED_APPS = 1 REQUIRED_APPS = {‘temp_sensor’}
def test_something(self):
File truncated at 100 lines see the full file
Changelog for package ros2_medkit_integration_tests
0.4.0 (2026-03-20)
- Integration tests for SOVD resource locking (acquire, release, extend, fault clear with locks, expiration, parent propagation)
- Integration tests for SOVD script execution endpoints (all formats, params, output, failure, lifecycle)
- Integration tests for graph provider plugin (external plugin loading, entity introspection)
- Integration tests for beacon discovery plugins (topic beacon, parameter beacon)
- Integration tests for OpenAPI/docs endpoint
- Integration tests for logging endpoints (
/logs,/logs/configuration) - Integration tests for linux introspection plugins (launch_testing and Docker-based)
- Port isolation per integration test via CMake-assigned unique ports
-
ROS_DOMAIN_IDisolation for integration tests - Build: use shared cmake modules from
ros2_medkit_cmakepackage - Contributors: \@bburda
0.3.0 (2026-02-27)
Package Dependencies
System Dependencies
| Name |
|---|
| python3-requests |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged ros2_medkit_integration_tests at Robotics Stack Exchange
Package Summary
| Version | 0.4.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/selfpatch/ros2_medkit.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-03-22 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- bburda
Authors
ros2_medkit_integration_tests
Integration tests, demo nodes, and shared test utilities for ros2_medkit.
Overview
This package contains everything needed to validate the ros2_medkit system end-to-end:
- Demo nodes – automotive-themed C++ nodes (sensors, actuators, services, actions) that produce realistic ROS 2 traffic for testing
- Feature tests – focused tests that validate individual API features (data access, operations, faults, SSE, CORS, auth, etc.)
- Scenario tests – end-to-end stories that exercise multi-step workflows (fault lifecycle, action execution, discovery modes, subscriptions, etc.)
-
Shared test library (
ros2_medkit_test_utils) – base test case, launch helpers, and assertion utilities shared across all test files
Package Structure
ros2_medkit_integration_tests/
demo_nodes/ # C++ demo node sources
launch/ # demo_nodes.launch.py
ros2_medkit_test_utils/
__init__.py
constants.py # DEFAULT_PORT, timeouts
coverage.py # GCOV_PREFIX helpers for CI
gateway_test_case.py # GatewayTestCase base class
launch_helpers.py # create_test_launch(), DEMO_NODE_REGISTRY
test/
features/ # Focused API feature tests
scenarios/ # End-to-end workflow tests
Running Tests
# Build everything
colcon build --symlink-install
source install/setup.bash
# All integration tests
colcon test --packages-select ros2_medkit_integration_tests
colcon test-result --verbose
# Single test
colcon test --packages-select ros2_medkit_integration_tests \
--ctest-args -R test_data_read
# Feature tests only
colcon test --packages-select ros2_medkit_integration_tests \
--ctest-args -L feature
# Scenario tests only
colcon test --packages-select ros2_medkit_integration_tests \
--ctest-args -L scenario
Demo Nodes
Launch all demo nodes for manual testing or the web UI:
ros2 launch ros2_medkit_integration_tests demo_nodes.launch.py
| Node | Namespace | Type | Description |
|---|---|---|---|
temp_sensor |
/powertrain/engine |
Publisher | Engine temperature (2 Hz) |
rpm_sensor |
/powertrain/engine |
Publisher | RPM readings (2 Hz) |
pressure_sensor |
/chassis/brakes |
Publisher | Brake pressure (2 Hz) |
status_sensor |
/body/door/front_left |
Publisher | Door open/closed (0.5 Hz) |
lidar_sensor |
/perception/lidar |
Publisher + Fault reporter | LaserScan with fault detection |
actuator |
/chassis/brakes |
Subscriber + Publisher | Brake actuator (command/feedback) |
controller |
/body/lights |
Subscriber + Publisher | Light controller (command/status) |
calibration |
/powertrain/engine |
Service | Trigger-based calibration |
long_calibration |
/powertrain/engine |
Action | Fibonacci-based long-running action |
Writing New Tests
Feature Test Template
Feature tests validate a single API capability:
```python from ros2_medkit_test_utils.gateway_test_case import GatewayTestCase from ros2_medkit_test_utils.launch_helpers import create_test_launch
def generate_test_description(): return create_test_launch( demo_nodes=[‘temp_sensor’], fault_manager=False, )
class TestMyFeature(GatewayTestCase): MIN_EXPECTED_APPS = 1 REQUIRED_APPS = {‘temp_sensor’}
def test_something(self):
File truncated at 100 lines see the full file
Changelog for package ros2_medkit_integration_tests
0.4.0 (2026-03-20)
- Integration tests for SOVD resource locking (acquire, release, extend, fault clear with locks, expiration, parent propagation)
- Integration tests for SOVD script execution endpoints (all formats, params, output, failure, lifecycle)
- Integration tests for graph provider plugin (external plugin loading, entity introspection)
- Integration tests for beacon discovery plugins (topic beacon, parameter beacon)
- Integration tests for OpenAPI/docs endpoint
- Integration tests for logging endpoints (
/logs,/logs/configuration) - Integration tests for linux introspection plugins (launch_testing and Docker-based)
- Port isolation per integration test via CMake-assigned unique ports
-
ROS_DOMAIN_IDisolation for integration tests - Build: use shared cmake modules from
ros2_medkit_cmakepackage - Contributors: \@bburda
0.3.0 (2026-02-27)
Package Dependencies
System Dependencies
| Name |
|---|
| python3-requests |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged ros2_medkit_integration_tests at Robotics Stack Exchange
Package Summary
| Version | 0.4.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/selfpatch/ros2_medkit.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-03-22 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- bburda
Authors
ros2_medkit_integration_tests
Integration tests, demo nodes, and shared test utilities for ros2_medkit.
Overview
This package contains everything needed to validate the ros2_medkit system end-to-end:
- Demo nodes – automotive-themed C++ nodes (sensors, actuators, services, actions) that produce realistic ROS 2 traffic for testing
- Feature tests – focused tests that validate individual API features (data access, operations, faults, SSE, CORS, auth, etc.)
- Scenario tests – end-to-end stories that exercise multi-step workflows (fault lifecycle, action execution, discovery modes, subscriptions, etc.)
-
Shared test library (
ros2_medkit_test_utils) – base test case, launch helpers, and assertion utilities shared across all test files
Package Structure
ros2_medkit_integration_tests/
demo_nodes/ # C++ demo node sources
launch/ # demo_nodes.launch.py
ros2_medkit_test_utils/
__init__.py
constants.py # DEFAULT_PORT, timeouts
coverage.py # GCOV_PREFIX helpers for CI
gateway_test_case.py # GatewayTestCase base class
launch_helpers.py # create_test_launch(), DEMO_NODE_REGISTRY
test/
features/ # Focused API feature tests
scenarios/ # End-to-end workflow tests
Running Tests
# Build everything
colcon build --symlink-install
source install/setup.bash
# All integration tests
colcon test --packages-select ros2_medkit_integration_tests
colcon test-result --verbose
# Single test
colcon test --packages-select ros2_medkit_integration_tests \
--ctest-args -R test_data_read
# Feature tests only
colcon test --packages-select ros2_medkit_integration_tests \
--ctest-args -L feature
# Scenario tests only
colcon test --packages-select ros2_medkit_integration_tests \
--ctest-args -L scenario
Demo Nodes
Launch all demo nodes for manual testing or the web UI:
ros2 launch ros2_medkit_integration_tests demo_nodes.launch.py
| Node | Namespace | Type | Description |
|---|---|---|---|
temp_sensor |
/powertrain/engine |
Publisher | Engine temperature (2 Hz) |
rpm_sensor |
/powertrain/engine |
Publisher | RPM readings (2 Hz) |
pressure_sensor |
/chassis/brakes |
Publisher | Brake pressure (2 Hz) |
status_sensor |
/body/door/front_left |
Publisher | Door open/closed (0.5 Hz) |
lidar_sensor |
/perception/lidar |
Publisher + Fault reporter | LaserScan with fault detection |
actuator |
/chassis/brakes |
Subscriber + Publisher | Brake actuator (command/feedback) |
controller |
/body/lights |
Subscriber + Publisher | Light controller (command/status) |
calibration |
/powertrain/engine |
Service | Trigger-based calibration |
long_calibration |
/powertrain/engine |
Action | Fibonacci-based long-running action |
Writing New Tests
Feature Test Template
Feature tests validate a single API capability:
```python from ros2_medkit_test_utils.gateway_test_case import GatewayTestCase from ros2_medkit_test_utils.launch_helpers import create_test_launch
def generate_test_description(): return create_test_launch( demo_nodes=[‘temp_sensor’], fault_manager=False, )
class TestMyFeature(GatewayTestCase): MIN_EXPECTED_APPS = 1 REQUIRED_APPS = {‘temp_sensor’}
def test_something(self):
File truncated at 100 lines see the full file
Changelog for package ros2_medkit_integration_tests
0.4.0 (2026-03-20)
- Integration tests for SOVD resource locking (acquire, release, extend, fault clear with locks, expiration, parent propagation)
- Integration tests for SOVD script execution endpoints (all formats, params, output, failure, lifecycle)
- Integration tests for graph provider plugin (external plugin loading, entity introspection)
- Integration tests for beacon discovery plugins (topic beacon, parameter beacon)
- Integration tests for OpenAPI/docs endpoint
- Integration tests for logging endpoints (
/logs,/logs/configuration) - Integration tests for linux introspection plugins (launch_testing and Docker-based)
- Port isolation per integration test via CMake-assigned unique ports
-
ROS_DOMAIN_IDisolation for integration tests - Build: use shared cmake modules from
ros2_medkit_cmakepackage - Contributors: \@bburda
0.3.0 (2026-02-27)
Package Dependencies
System Dependencies
| Name |
|---|
| python3-requests |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged ros2_medkit_integration_tests at Robotics Stack Exchange
Package Summary
| Version | 0.4.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/selfpatch/ros2_medkit.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-03-22 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- bburda
Authors
ros2_medkit_integration_tests
Integration tests, demo nodes, and shared test utilities for ros2_medkit.
Overview
This package contains everything needed to validate the ros2_medkit system end-to-end:
- Demo nodes – automotive-themed C++ nodes (sensors, actuators, services, actions) that produce realistic ROS 2 traffic for testing
- Feature tests – focused tests that validate individual API features (data access, operations, faults, SSE, CORS, auth, etc.)
- Scenario tests – end-to-end stories that exercise multi-step workflows (fault lifecycle, action execution, discovery modes, subscriptions, etc.)
-
Shared test library (
ros2_medkit_test_utils) – base test case, launch helpers, and assertion utilities shared across all test files
Package Structure
ros2_medkit_integration_tests/
demo_nodes/ # C++ demo node sources
launch/ # demo_nodes.launch.py
ros2_medkit_test_utils/
__init__.py
constants.py # DEFAULT_PORT, timeouts
coverage.py # GCOV_PREFIX helpers for CI
gateway_test_case.py # GatewayTestCase base class
launch_helpers.py # create_test_launch(), DEMO_NODE_REGISTRY
test/
features/ # Focused API feature tests
scenarios/ # End-to-end workflow tests
Running Tests
# Build everything
colcon build --symlink-install
source install/setup.bash
# All integration tests
colcon test --packages-select ros2_medkit_integration_tests
colcon test-result --verbose
# Single test
colcon test --packages-select ros2_medkit_integration_tests \
--ctest-args -R test_data_read
# Feature tests only
colcon test --packages-select ros2_medkit_integration_tests \
--ctest-args -L feature
# Scenario tests only
colcon test --packages-select ros2_medkit_integration_tests \
--ctest-args -L scenario
Demo Nodes
Launch all demo nodes for manual testing or the web UI:
ros2 launch ros2_medkit_integration_tests demo_nodes.launch.py
| Node | Namespace | Type | Description |
|---|---|---|---|
temp_sensor |
/powertrain/engine |
Publisher | Engine temperature (2 Hz) |
rpm_sensor |
/powertrain/engine |
Publisher | RPM readings (2 Hz) |
pressure_sensor |
/chassis/brakes |
Publisher | Brake pressure (2 Hz) |
status_sensor |
/body/door/front_left |
Publisher | Door open/closed (0.5 Hz) |
lidar_sensor |
/perception/lidar |
Publisher + Fault reporter | LaserScan with fault detection |
actuator |
/chassis/brakes |
Subscriber + Publisher | Brake actuator (command/feedback) |
controller |
/body/lights |
Subscriber + Publisher | Light controller (command/status) |
calibration |
/powertrain/engine |
Service | Trigger-based calibration |
long_calibration |
/powertrain/engine |
Action | Fibonacci-based long-running action |
Writing New Tests
Feature Test Template
Feature tests validate a single API capability:
```python from ros2_medkit_test_utils.gateway_test_case import GatewayTestCase from ros2_medkit_test_utils.launch_helpers import create_test_launch
def generate_test_description(): return create_test_launch( demo_nodes=[‘temp_sensor’], fault_manager=False, )
class TestMyFeature(GatewayTestCase): MIN_EXPECTED_APPS = 1 REQUIRED_APPS = {‘temp_sensor’}
def test_something(self):
File truncated at 100 lines see the full file
Changelog for package ros2_medkit_integration_tests
0.4.0 (2026-03-20)
- Integration tests for SOVD resource locking (acquire, release, extend, fault clear with locks, expiration, parent propagation)
- Integration tests for SOVD script execution endpoints (all formats, params, output, failure, lifecycle)
- Integration tests for graph provider plugin (external plugin loading, entity introspection)
- Integration tests for beacon discovery plugins (topic beacon, parameter beacon)
- Integration tests for OpenAPI/docs endpoint
- Integration tests for logging endpoints (
/logs,/logs/configuration) - Integration tests for linux introspection plugins (launch_testing and Docker-based)
- Port isolation per integration test via CMake-assigned unique ports
-
ROS_DOMAIN_IDisolation for integration tests - Build: use shared cmake modules from
ros2_medkit_cmakepackage - Contributors: \@bburda
0.3.0 (2026-02-27)
Package Dependencies
System Dependencies
| Name |
|---|
| python3-requests |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged ros2_medkit_integration_tests at Robotics Stack Exchange
Package Summary
| Version | 0.4.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/selfpatch/ros2_medkit.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-03-22 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- bburda
Authors
ros2_medkit_integration_tests
Integration tests, demo nodes, and shared test utilities for ros2_medkit.
Overview
This package contains everything needed to validate the ros2_medkit system end-to-end:
- Demo nodes – automotive-themed C++ nodes (sensors, actuators, services, actions) that produce realistic ROS 2 traffic for testing
- Feature tests – focused tests that validate individual API features (data access, operations, faults, SSE, CORS, auth, etc.)
- Scenario tests – end-to-end stories that exercise multi-step workflows (fault lifecycle, action execution, discovery modes, subscriptions, etc.)
-
Shared test library (
ros2_medkit_test_utils) – base test case, launch helpers, and assertion utilities shared across all test files
Package Structure
ros2_medkit_integration_tests/
demo_nodes/ # C++ demo node sources
launch/ # demo_nodes.launch.py
ros2_medkit_test_utils/
__init__.py
constants.py # DEFAULT_PORT, timeouts
coverage.py # GCOV_PREFIX helpers for CI
gateway_test_case.py # GatewayTestCase base class
launch_helpers.py # create_test_launch(), DEMO_NODE_REGISTRY
test/
features/ # Focused API feature tests
scenarios/ # End-to-end workflow tests
Running Tests
# Build everything
colcon build --symlink-install
source install/setup.bash
# All integration tests
colcon test --packages-select ros2_medkit_integration_tests
colcon test-result --verbose
# Single test
colcon test --packages-select ros2_medkit_integration_tests \
--ctest-args -R test_data_read
# Feature tests only
colcon test --packages-select ros2_medkit_integration_tests \
--ctest-args -L feature
# Scenario tests only
colcon test --packages-select ros2_medkit_integration_tests \
--ctest-args -L scenario
Demo Nodes
Launch all demo nodes for manual testing or the web UI:
ros2 launch ros2_medkit_integration_tests demo_nodes.launch.py
| Node | Namespace | Type | Description |
|---|---|---|---|
temp_sensor |
/powertrain/engine |
Publisher | Engine temperature (2 Hz) |
rpm_sensor |
/powertrain/engine |
Publisher | RPM readings (2 Hz) |
pressure_sensor |
/chassis/brakes |
Publisher | Brake pressure (2 Hz) |
status_sensor |
/body/door/front_left |
Publisher | Door open/closed (0.5 Hz) |
lidar_sensor |
/perception/lidar |
Publisher + Fault reporter | LaserScan with fault detection |
actuator |
/chassis/brakes |
Subscriber + Publisher | Brake actuator (command/feedback) |
controller |
/body/lights |
Subscriber + Publisher | Light controller (command/status) |
calibration |
/powertrain/engine |
Service | Trigger-based calibration |
long_calibration |
/powertrain/engine |
Action | Fibonacci-based long-running action |
Writing New Tests
Feature Test Template
Feature tests validate a single API capability:
```python from ros2_medkit_test_utils.gateway_test_case import GatewayTestCase from ros2_medkit_test_utils.launch_helpers import create_test_launch
def generate_test_description(): return create_test_launch( demo_nodes=[‘temp_sensor’], fault_manager=False, )
class TestMyFeature(GatewayTestCase): MIN_EXPECTED_APPS = 1 REQUIRED_APPS = {‘temp_sensor’}
def test_something(self):
File truncated at 100 lines see the full file
Changelog for package ros2_medkit_integration_tests
0.4.0 (2026-03-20)
- Integration tests for SOVD resource locking (acquire, release, extend, fault clear with locks, expiration, parent propagation)
- Integration tests for SOVD script execution endpoints (all formats, params, output, failure, lifecycle)
- Integration tests for graph provider plugin (external plugin loading, entity introspection)
- Integration tests for beacon discovery plugins (topic beacon, parameter beacon)
- Integration tests for OpenAPI/docs endpoint
- Integration tests for logging endpoints (
/logs,/logs/configuration) - Integration tests for linux introspection plugins (launch_testing and Docker-based)
- Port isolation per integration test via CMake-assigned unique ports
-
ROS_DOMAIN_IDisolation for integration tests - Build: use shared cmake modules from
ros2_medkit_cmakepackage - Contributors: \@bburda
0.3.0 (2026-02-27)
Package Dependencies
System Dependencies
| Name |
|---|
| python3-requests |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged ros2_medkit_integration_tests at Robotics Stack Exchange
Package Summary
| Version | 0.4.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/selfpatch/ros2_medkit.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-03-22 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- bburda
Authors
ros2_medkit_integration_tests
Integration tests, demo nodes, and shared test utilities for ros2_medkit.
Overview
This package contains everything needed to validate the ros2_medkit system end-to-end:
- Demo nodes – automotive-themed C++ nodes (sensors, actuators, services, actions) that produce realistic ROS 2 traffic for testing
- Feature tests – focused tests that validate individual API features (data access, operations, faults, SSE, CORS, auth, etc.)
- Scenario tests – end-to-end stories that exercise multi-step workflows (fault lifecycle, action execution, discovery modes, subscriptions, etc.)
-
Shared test library (
ros2_medkit_test_utils) – base test case, launch helpers, and assertion utilities shared across all test files
Package Structure
ros2_medkit_integration_tests/
demo_nodes/ # C++ demo node sources
launch/ # demo_nodes.launch.py
ros2_medkit_test_utils/
__init__.py
constants.py # DEFAULT_PORT, timeouts
coverage.py # GCOV_PREFIX helpers for CI
gateway_test_case.py # GatewayTestCase base class
launch_helpers.py # create_test_launch(), DEMO_NODE_REGISTRY
test/
features/ # Focused API feature tests
scenarios/ # End-to-end workflow tests
Running Tests
# Build everything
colcon build --symlink-install
source install/setup.bash
# All integration tests
colcon test --packages-select ros2_medkit_integration_tests
colcon test-result --verbose
# Single test
colcon test --packages-select ros2_medkit_integration_tests \
--ctest-args -R test_data_read
# Feature tests only
colcon test --packages-select ros2_medkit_integration_tests \
--ctest-args -L feature
# Scenario tests only
colcon test --packages-select ros2_medkit_integration_tests \
--ctest-args -L scenario
Demo Nodes
Launch all demo nodes for manual testing or the web UI:
ros2 launch ros2_medkit_integration_tests demo_nodes.launch.py
| Node | Namespace | Type | Description |
|---|---|---|---|
temp_sensor |
/powertrain/engine |
Publisher | Engine temperature (2 Hz) |
rpm_sensor |
/powertrain/engine |
Publisher | RPM readings (2 Hz) |
pressure_sensor |
/chassis/brakes |
Publisher | Brake pressure (2 Hz) |
status_sensor |
/body/door/front_left |
Publisher | Door open/closed (0.5 Hz) |
lidar_sensor |
/perception/lidar |
Publisher + Fault reporter | LaserScan with fault detection |
actuator |
/chassis/brakes |
Subscriber + Publisher | Brake actuator (command/feedback) |
controller |
/body/lights |
Subscriber + Publisher | Light controller (command/status) |
calibration |
/powertrain/engine |
Service | Trigger-based calibration |
long_calibration |
/powertrain/engine |
Action | Fibonacci-based long-running action |
Writing New Tests
Feature Test Template
Feature tests validate a single API capability:
```python from ros2_medkit_test_utils.gateway_test_case import GatewayTestCase from ros2_medkit_test_utils.launch_helpers import create_test_launch
def generate_test_description(): return create_test_launch( demo_nodes=[‘temp_sensor’], fault_manager=False, )
class TestMyFeature(GatewayTestCase): MIN_EXPECTED_APPS = 1 REQUIRED_APPS = {‘temp_sensor’}
def test_something(self):
File truncated at 100 lines see the full file
Changelog for package ros2_medkit_integration_tests
0.4.0 (2026-03-20)
- Integration tests for SOVD resource locking (acquire, release, extend, fault clear with locks, expiration, parent propagation)
- Integration tests for SOVD script execution endpoints (all formats, params, output, failure, lifecycle)
- Integration tests for graph provider plugin (external plugin loading, entity introspection)
- Integration tests for beacon discovery plugins (topic beacon, parameter beacon)
- Integration tests for OpenAPI/docs endpoint
- Integration tests for logging endpoints (
/logs,/logs/configuration) - Integration tests for linux introspection plugins (launch_testing and Docker-based)
- Port isolation per integration test via CMake-assigned unique ports
-
ROS_DOMAIN_IDisolation for integration tests - Build: use shared cmake modules from
ros2_medkit_cmakepackage - Contributors: \@bburda
0.3.0 (2026-02-27)
Package Dependencies
System Dependencies
| Name |
|---|
| python3-requests |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged ros2_medkit_integration_tests at Robotics Stack Exchange
Package Summary
| Version | 0.4.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/selfpatch/ros2_medkit.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-03-22 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- bburda
Authors
ros2_medkit_integration_tests
Integration tests, demo nodes, and shared test utilities for ros2_medkit.
Overview
This package contains everything needed to validate the ros2_medkit system end-to-end:
- Demo nodes – automotive-themed C++ nodes (sensors, actuators, services, actions) that produce realistic ROS 2 traffic for testing
- Feature tests – focused tests that validate individual API features (data access, operations, faults, SSE, CORS, auth, etc.)
- Scenario tests – end-to-end stories that exercise multi-step workflows (fault lifecycle, action execution, discovery modes, subscriptions, etc.)
-
Shared test library (
ros2_medkit_test_utils) – base test case, launch helpers, and assertion utilities shared across all test files
Package Structure
ros2_medkit_integration_tests/
demo_nodes/ # C++ demo node sources
launch/ # demo_nodes.launch.py
ros2_medkit_test_utils/
__init__.py
constants.py # DEFAULT_PORT, timeouts
coverage.py # GCOV_PREFIX helpers for CI
gateway_test_case.py # GatewayTestCase base class
launch_helpers.py # create_test_launch(), DEMO_NODE_REGISTRY
test/
features/ # Focused API feature tests
scenarios/ # End-to-end workflow tests
Running Tests
# Build everything
colcon build --symlink-install
source install/setup.bash
# All integration tests
colcon test --packages-select ros2_medkit_integration_tests
colcon test-result --verbose
# Single test
colcon test --packages-select ros2_medkit_integration_tests \
--ctest-args -R test_data_read
# Feature tests only
colcon test --packages-select ros2_medkit_integration_tests \
--ctest-args -L feature
# Scenario tests only
colcon test --packages-select ros2_medkit_integration_tests \
--ctest-args -L scenario
Demo Nodes
Launch all demo nodes for manual testing or the web UI:
ros2 launch ros2_medkit_integration_tests demo_nodes.launch.py
| Node | Namespace | Type | Description |
|---|---|---|---|
temp_sensor |
/powertrain/engine |
Publisher | Engine temperature (2 Hz) |
rpm_sensor |
/powertrain/engine |
Publisher | RPM readings (2 Hz) |
pressure_sensor |
/chassis/brakes |
Publisher | Brake pressure (2 Hz) |
status_sensor |
/body/door/front_left |
Publisher | Door open/closed (0.5 Hz) |
lidar_sensor |
/perception/lidar |
Publisher + Fault reporter | LaserScan with fault detection |
actuator |
/chassis/brakes |
Subscriber + Publisher | Brake actuator (command/feedback) |
controller |
/body/lights |
Subscriber + Publisher | Light controller (command/status) |
calibration |
/powertrain/engine |
Service | Trigger-based calibration |
long_calibration |
/powertrain/engine |
Action | Fibonacci-based long-running action |
Writing New Tests
Feature Test Template
Feature tests validate a single API capability:
```python from ros2_medkit_test_utils.gateway_test_case import GatewayTestCase from ros2_medkit_test_utils.launch_helpers import create_test_launch
def generate_test_description(): return create_test_launch( demo_nodes=[‘temp_sensor’], fault_manager=False, )
class TestMyFeature(GatewayTestCase): MIN_EXPECTED_APPS = 1 REQUIRED_APPS = {‘temp_sensor’}
def test_something(self):
File truncated at 100 lines see the full file
Changelog for package ros2_medkit_integration_tests
0.4.0 (2026-03-20)
- Integration tests for SOVD resource locking (acquire, release, extend, fault clear with locks, expiration, parent propagation)
- Integration tests for SOVD script execution endpoints (all formats, params, output, failure, lifecycle)
- Integration tests for graph provider plugin (external plugin loading, entity introspection)
- Integration tests for beacon discovery plugins (topic beacon, parameter beacon)
- Integration tests for OpenAPI/docs endpoint
- Integration tests for logging endpoints (
/logs,/logs/configuration) - Integration tests for linux introspection plugins (launch_testing and Docker-based)
- Port isolation per integration test via CMake-assigned unique ports
-
ROS_DOMAIN_IDisolation for integration tests - Build: use shared cmake modules from
ros2_medkit_cmakepackage - Contributors: \@bburda
0.3.0 (2026-02-27)
Package Dependencies
System Dependencies
| Name |
|---|
| python3-requests |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged ros2_medkit_integration_tests at Robotics Stack Exchange
Package Summary
| Version | 0.4.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/selfpatch/ros2_medkit.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-03-22 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- bburda
Authors
ros2_medkit_integration_tests
Integration tests, demo nodes, and shared test utilities for ros2_medkit.
Overview
This package contains everything needed to validate the ros2_medkit system end-to-end:
- Demo nodes – automotive-themed C++ nodes (sensors, actuators, services, actions) that produce realistic ROS 2 traffic for testing
- Feature tests – focused tests that validate individual API features (data access, operations, faults, SSE, CORS, auth, etc.)
- Scenario tests – end-to-end stories that exercise multi-step workflows (fault lifecycle, action execution, discovery modes, subscriptions, etc.)
-
Shared test library (
ros2_medkit_test_utils) – base test case, launch helpers, and assertion utilities shared across all test files
Package Structure
ros2_medkit_integration_tests/
demo_nodes/ # C++ demo node sources
launch/ # demo_nodes.launch.py
ros2_medkit_test_utils/
__init__.py
constants.py # DEFAULT_PORT, timeouts
coverage.py # GCOV_PREFIX helpers for CI
gateway_test_case.py # GatewayTestCase base class
launch_helpers.py # create_test_launch(), DEMO_NODE_REGISTRY
test/
features/ # Focused API feature tests
scenarios/ # End-to-end workflow tests
Running Tests
# Build everything
colcon build --symlink-install
source install/setup.bash
# All integration tests
colcon test --packages-select ros2_medkit_integration_tests
colcon test-result --verbose
# Single test
colcon test --packages-select ros2_medkit_integration_tests \
--ctest-args -R test_data_read
# Feature tests only
colcon test --packages-select ros2_medkit_integration_tests \
--ctest-args -L feature
# Scenario tests only
colcon test --packages-select ros2_medkit_integration_tests \
--ctest-args -L scenario
Demo Nodes
Launch all demo nodes for manual testing or the web UI:
ros2 launch ros2_medkit_integration_tests demo_nodes.launch.py
| Node | Namespace | Type | Description |
|---|---|---|---|
temp_sensor |
/powertrain/engine |
Publisher | Engine temperature (2 Hz) |
rpm_sensor |
/powertrain/engine |
Publisher | RPM readings (2 Hz) |
pressure_sensor |
/chassis/brakes |
Publisher | Brake pressure (2 Hz) |
status_sensor |
/body/door/front_left |
Publisher | Door open/closed (0.5 Hz) |
lidar_sensor |
/perception/lidar |
Publisher + Fault reporter | LaserScan with fault detection |
actuator |
/chassis/brakes |
Subscriber + Publisher | Brake actuator (command/feedback) |
controller |
/body/lights |
Subscriber + Publisher | Light controller (command/status) |
calibration |
/powertrain/engine |
Service | Trigger-based calibration |
long_calibration |
/powertrain/engine |
Action | Fibonacci-based long-running action |
Writing New Tests
Feature Test Template
Feature tests validate a single API capability:
```python from ros2_medkit_test_utils.gateway_test_case import GatewayTestCase from ros2_medkit_test_utils.launch_helpers import create_test_launch
def generate_test_description(): return create_test_launch( demo_nodes=[‘temp_sensor’], fault_manager=False, )
class TestMyFeature(GatewayTestCase): MIN_EXPECTED_APPS = 1 REQUIRED_APPS = {‘temp_sensor’}
def test_something(self):
File truncated at 100 lines see the full file
Changelog for package ros2_medkit_integration_tests
0.4.0 (2026-03-20)
- Integration tests for SOVD resource locking (acquire, release, extend, fault clear with locks, expiration, parent propagation)
- Integration tests for SOVD script execution endpoints (all formats, params, output, failure, lifecycle)
- Integration tests for graph provider plugin (external plugin loading, entity introspection)
- Integration tests for beacon discovery plugins (topic beacon, parameter beacon)
- Integration tests for OpenAPI/docs endpoint
- Integration tests for logging endpoints (
/logs,/logs/configuration) - Integration tests for linux introspection plugins (launch_testing and Docker-based)
- Port isolation per integration test via CMake-assigned unique ports
-
ROS_DOMAIN_IDisolation for integration tests - Build: use shared cmake modules from
ros2_medkit_cmakepackage - Contributors: \@bburda
0.3.0 (2026-02-27)
Package Dependencies
System Dependencies
| Name |
|---|
| python3-requests |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged ros2_medkit_integration_tests at Robotics Stack Exchange
Package Summary
| Version | 0.4.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/selfpatch/ros2_medkit.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-03-22 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- bburda
Authors
ros2_medkit_integration_tests
Integration tests, demo nodes, and shared test utilities for ros2_medkit.
Overview
This package contains everything needed to validate the ros2_medkit system end-to-end:
- Demo nodes – automotive-themed C++ nodes (sensors, actuators, services, actions) that produce realistic ROS 2 traffic for testing
- Feature tests – focused tests that validate individual API features (data access, operations, faults, SSE, CORS, auth, etc.)
- Scenario tests – end-to-end stories that exercise multi-step workflows (fault lifecycle, action execution, discovery modes, subscriptions, etc.)
-
Shared test library (
ros2_medkit_test_utils) – base test case, launch helpers, and assertion utilities shared across all test files
Package Structure
ros2_medkit_integration_tests/
demo_nodes/ # C++ demo node sources
launch/ # demo_nodes.launch.py
ros2_medkit_test_utils/
__init__.py
constants.py # DEFAULT_PORT, timeouts
coverage.py # GCOV_PREFIX helpers for CI
gateway_test_case.py # GatewayTestCase base class
launch_helpers.py # create_test_launch(), DEMO_NODE_REGISTRY
test/
features/ # Focused API feature tests
scenarios/ # End-to-end workflow tests
Running Tests
# Build everything
colcon build --symlink-install
source install/setup.bash
# All integration tests
colcon test --packages-select ros2_medkit_integration_tests
colcon test-result --verbose
# Single test
colcon test --packages-select ros2_medkit_integration_tests \
--ctest-args -R test_data_read
# Feature tests only
colcon test --packages-select ros2_medkit_integration_tests \
--ctest-args -L feature
# Scenario tests only
colcon test --packages-select ros2_medkit_integration_tests \
--ctest-args -L scenario
Demo Nodes
Launch all demo nodes for manual testing or the web UI:
ros2 launch ros2_medkit_integration_tests demo_nodes.launch.py
| Node | Namespace | Type | Description |
|---|---|---|---|
temp_sensor |
/powertrain/engine |
Publisher | Engine temperature (2 Hz) |
rpm_sensor |
/powertrain/engine |
Publisher | RPM readings (2 Hz) |
pressure_sensor |
/chassis/brakes |
Publisher | Brake pressure (2 Hz) |
status_sensor |
/body/door/front_left |
Publisher | Door open/closed (0.5 Hz) |
lidar_sensor |
/perception/lidar |
Publisher + Fault reporter | LaserScan with fault detection |
actuator |
/chassis/brakes |
Subscriber + Publisher | Brake actuator (command/feedback) |
controller |
/body/lights |
Subscriber + Publisher | Light controller (command/status) |
calibration |
/powertrain/engine |
Service | Trigger-based calibration |
long_calibration |
/powertrain/engine |
Action | Fibonacci-based long-running action |
Writing New Tests
Feature Test Template
Feature tests validate a single API capability:
```python from ros2_medkit_test_utils.gateway_test_case import GatewayTestCase from ros2_medkit_test_utils.launch_helpers import create_test_launch
def generate_test_description(): return create_test_launch( demo_nodes=[‘temp_sensor’], fault_manager=False, )
class TestMyFeature(GatewayTestCase): MIN_EXPECTED_APPS = 1 REQUIRED_APPS = {‘temp_sensor’}
def test_something(self):
File truncated at 100 lines see the full file
Changelog for package ros2_medkit_integration_tests
0.4.0 (2026-03-20)
- Integration tests for SOVD resource locking (acquire, release, extend, fault clear with locks, expiration, parent propagation)
- Integration tests for SOVD script execution endpoints (all formats, params, output, failure, lifecycle)
- Integration tests for graph provider plugin (external plugin loading, entity introspection)
- Integration tests for beacon discovery plugins (topic beacon, parameter beacon)
- Integration tests for OpenAPI/docs endpoint
- Integration tests for logging endpoints (
/logs,/logs/configuration) - Integration tests for linux introspection plugins (launch_testing and Docker-based)
- Port isolation per integration test via CMake-assigned unique ports
-
ROS_DOMAIN_IDisolation for integration tests - Build: use shared cmake modules from
ros2_medkit_cmakepackage - Contributors: \@bburda
0.3.0 (2026-02-27)
Package Dependencies
System Dependencies
| Name |
|---|
| python3-requests |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged ros2_medkit_integration_tests at Robotics Stack Exchange
Package Summary
| Version | 0.4.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/selfpatch/ros2_medkit.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-03-22 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- bburda
Authors
ros2_medkit_integration_tests
Integration tests, demo nodes, and shared test utilities for ros2_medkit.
Overview
This package contains everything needed to validate the ros2_medkit system end-to-end:
- Demo nodes – automotive-themed C++ nodes (sensors, actuators, services, actions) that produce realistic ROS 2 traffic for testing
- Feature tests – focused tests that validate individual API features (data access, operations, faults, SSE, CORS, auth, etc.)
- Scenario tests – end-to-end stories that exercise multi-step workflows (fault lifecycle, action execution, discovery modes, subscriptions, etc.)
-
Shared test library (
ros2_medkit_test_utils) – base test case, launch helpers, and assertion utilities shared across all test files
Package Structure
ros2_medkit_integration_tests/
demo_nodes/ # C++ demo node sources
launch/ # demo_nodes.launch.py
ros2_medkit_test_utils/
__init__.py
constants.py # DEFAULT_PORT, timeouts
coverage.py # GCOV_PREFIX helpers for CI
gateway_test_case.py # GatewayTestCase base class
launch_helpers.py # create_test_launch(), DEMO_NODE_REGISTRY
test/
features/ # Focused API feature tests
scenarios/ # End-to-end workflow tests
Running Tests
# Build everything
colcon build --symlink-install
source install/setup.bash
# All integration tests
colcon test --packages-select ros2_medkit_integration_tests
colcon test-result --verbose
# Single test
colcon test --packages-select ros2_medkit_integration_tests \
--ctest-args -R test_data_read
# Feature tests only
colcon test --packages-select ros2_medkit_integration_tests \
--ctest-args -L feature
# Scenario tests only
colcon test --packages-select ros2_medkit_integration_tests \
--ctest-args -L scenario
Demo Nodes
Launch all demo nodes for manual testing or the web UI:
ros2 launch ros2_medkit_integration_tests demo_nodes.launch.py
| Node | Namespace | Type | Description |
|---|---|---|---|
temp_sensor |
/powertrain/engine |
Publisher | Engine temperature (2 Hz) |
rpm_sensor |
/powertrain/engine |
Publisher | RPM readings (2 Hz) |
pressure_sensor |
/chassis/brakes |
Publisher | Brake pressure (2 Hz) |
status_sensor |
/body/door/front_left |
Publisher | Door open/closed (0.5 Hz) |
lidar_sensor |
/perception/lidar |
Publisher + Fault reporter | LaserScan with fault detection |
actuator |
/chassis/brakes |
Subscriber + Publisher | Brake actuator (command/feedback) |
controller |
/body/lights |
Subscriber + Publisher | Light controller (command/status) |
calibration |
/powertrain/engine |
Service | Trigger-based calibration |
long_calibration |
/powertrain/engine |
Action | Fibonacci-based long-running action |
Writing New Tests
Feature Test Template
Feature tests validate a single API capability:
```python from ros2_medkit_test_utils.gateway_test_case import GatewayTestCase from ros2_medkit_test_utils.launch_helpers import create_test_launch
def generate_test_description(): return create_test_launch( demo_nodes=[‘temp_sensor’], fault_manager=False, )
class TestMyFeature(GatewayTestCase): MIN_EXPECTED_APPS = 1 REQUIRED_APPS = {‘temp_sensor’}
def test_something(self):
File truncated at 100 lines see the full file
Changelog for package ros2_medkit_integration_tests
0.4.0 (2026-03-20)
- Integration tests for SOVD resource locking (acquire, release, extend, fault clear with locks, expiration, parent propagation)
- Integration tests for SOVD script execution endpoints (all formats, params, output, failure, lifecycle)
- Integration tests for graph provider plugin (external plugin loading, entity introspection)
- Integration tests for beacon discovery plugins (topic beacon, parameter beacon)
- Integration tests for OpenAPI/docs endpoint
- Integration tests for logging endpoints (
/logs,/logs/configuration) - Integration tests for linux introspection plugins (launch_testing and Docker-based)
- Port isolation per integration test via CMake-assigned unique ports
-
ROS_DOMAIN_IDisolation for integration tests - Build: use shared cmake modules from
ros2_medkit_cmakepackage - Contributors: \@bburda
0.3.0 (2026-02-27)
Package Dependencies
System Dependencies
| Name |
|---|
| python3-requests |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged ros2_medkit_integration_tests at Robotics Stack Exchange
Package Summary
| Version | 0.4.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/selfpatch/ros2_medkit.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-03-22 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- bburda
Authors
ros2_medkit_integration_tests
Integration tests, demo nodes, and shared test utilities for ros2_medkit.
Overview
This package contains everything needed to validate the ros2_medkit system end-to-end:
- Demo nodes – automotive-themed C++ nodes (sensors, actuators, services, actions) that produce realistic ROS 2 traffic for testing
- Feature tests – focused tests that validate individual API features (data access, operations, faults, SSE, CORS, auth, etc.)
- Scenario tests – end-to-end stories that exercise multi-step workflows (fault lifecycle, action execution, discovery modes, subscriptions, etc.)
-
Shared test library (
ros2_medkit_test_utils) – base test case, launch helpers, and assertion utilities shared across all test files
Package Structure
ros2_medkit_integration_tests/
demo_nodes/ # C++ demo node sources
launch/ # demo_nodes.launch.py
ros2_medkit_test_utils/
__init__.py
constants.py # DEFAULT_PORT, timeouts
coverage.py # GCOV_PREFIX helpers for CI
gateway_test_case.py # GatewayTestCase base class
launch_helpers.py # create_test_launch(), DEMO_NODE_REGISTRY
test/
features/ # Focused API feature tests
scenarios/ # End-to-end workflow tests
Running Tests
# Build everything
colcon build --symlink-install
source install/setup.bash
# All integration tests
colcon test --packages-select ros2_medkit_integration_tests
colcon test-result --verbose
# Single test
colcon test --packages-select ros2_medkit_integration_tests \
--ctest-args -R test_data_read
# Feature tests only
colcon test --packages-select ros2_medkit_integration_tests \
--ctest-args -L feature
# Scenario tests only
colcon test --packages-select ros2_medkit_integration_tests \
--ctest-args -L scenario
Demo Nodes
Launch all demo nodes for manual testing or the web UI:
ros2 launch ros2_medkit_integration_tests demo_nodes.launch.py
| Node | Namespace | Type | Description |
|---|---|---|---|
temp_sensor |
/powertrain/engine |
Publisher | Engine temperature (2 Hz) |
rpm_sensor |
/powertrain/engine |
Publisher | RPM readings (2 Hz) |
pressure_sensor |
/chassis/brakes |
Publisher | Brake pressure (2 Hz) |
status_sensor |
/body/door/front_left |
Publisher | Door open/closed (0.5 Hz) |
lidar_sensor |
/perception/lidar |
Publisher + Fault reporter | LaserScan with fault detection |
actuator |
/chassis/brakes |
Subscriber + Publisher | Brake actuator (command/feedback) |
controller |
/body/lights |
Subscriber + Publisher | Light controller (command/status) |
calibration |
/powertrain/engine |
Service | Trigger-based calibration |
long_calibration |
/powertrain/engine |
Action | Fibonacci-based long-running action |
Writing New Tests
Feature Test Template
Feature tests validate a single API capability:
```python from ros2_medkit_test_utils.gateway_test_case import GatewayTestCase from ros2_medkit_test_utils.launch_helpers import create_test_launch
def generate_test_description(): return create_test_launch( demo_nodes=[‘temp_sensor’], fault_manager=False, )
class TestMyFeature(GatewayTestCase): MIN_EXPECTED_APPS = 1 REQUIRED_APPS = {‘temp_sensor’}
def test_something(self):
File truncated at 100 lines see the full file
Changelog for package ros2_medkit_integration_tests
0.4.0 (2026-03-20)
- Integration tests for SOVD resource locking (acquire, release, extend, fault clear with locks, expiration, parent propagation)
- Integration tests for SOVD script execution endpoints (all formats, params, output, failure, lifecycle)
- Integration tests for graph provider plugin (external plugin loading, entity introspection)
- Integration tests for beacon discovery plugins (topic beacon, parameter beacon)
- Integration tests for OpenAPI/docs endpoint
- Integration tests for logging endpoints (
/logs,/logs/configuration) - Integration tests for linux introspection plugins (launch_testing and Docker-based)
- Port isolation per integration test via CMake-assigned unique ports
-
ROS_DOMAIN_IDisolation for integration tests - Build: use shared cmake modules from
ros2_medkit_cmakepackage - Contributors: \@bburda
0.3.0 (2026-02-27)
Package Dependencies
System Dependencies
| Name |
|---|
| python3-requests |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged ros2_medkit_integration_tests at Robotics Stack Exchange
Package Summary
| Version | 0.4.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/selfpatch/ros2_medkit.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-03-22 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- bburda
Authors
ros2_medkit_integration_tests
Integration tests, demo nodes, and shared test utilities for ros2_medkit.
Overview
This package contains everything needed to validate the ros2_medkit system end-to-end:
- Demo nodes – automotive-themed C++ nodes (sensors, actuators, services, actions) that produce realistic ROS 2 traffic for testing
- Feature tests – focused tests that validate individual API features (data access, operations, faults, SSE, CORS, auth, etc.)
- Scenario tests – end-to-end stories that exercise multi-step workflows (fault lifecycle, action execution, discovery modes, subscriptions, etc.)
-
Shared test library (
ros2_medkit_test_utils) – base test case, launch helpers, and assertion utilities shared across all test files
Package Structure
ros2_medkit_integration_tests/
demo_nodes/ # C++ demo node sources
launch/ # demo_nodes.launch.py
ros2_medkit_test_utils/
__init__.py
constants.py # DEFAULT_PORT, timeouts
coverage.py # GCOV_PREFIX helpers for CI
gateway_test_case.py # GatewayTestCase base class
launch_helpers.py # create_test_launch(), DEMO_NODE_REGISTRY
test/
features/ # Focused API feature tests
scenarios/ # End-to-end workflow tests
Running Tests
# Build everything
colcon build --symlink-install
source install/setup.bash
# All integration tests
colcon test --packages-select ros2_medkit_integration_tests
colcon test-result --verbose
# Single test
colcon test --packages-select ros2_medkit_integration_tests \
--ctest-args -R test_data_read
# Feature tests only
colcon test --packages-select ros2_medkit_integration_tests \
--ctest-args -L feature
# Scenario tests only
colcon test --packages-select ros2_medkit_integration_tests \
--ctest-args -L scenario
Demo Nodes
Launch all demo nodes for manual testing or the web UI:
ros2 launch ros2_medkit_integration_tests demo_nodes.launch.py
| Node | Namespace | Type | Description |
|---|---|---|---|
temp_sensor |
/powertrain/engine |
Publisher | Engine temperature (2 Hz) |
rpm_sensor |
/powertrain/engine |
Publisher | RPM readings (2 Hz) |
pressure_sensor |
/chassis/brakes |
Publisher | Brake pressure (2 Hz) |
status_sensor |
/body/door/front_left |
Publisher | Door open/closed (0.5 Hz) |
lidar_sensor |
/perception/lidar |
Publisher + Fault reporter | LaserScan with fault detection |
actuator |
/chassis/brakes |
Subscriber + Publisher | Brake actuator (command/feedback) |
controller |
/body/lights |
Subscriber + Publisher | Light controller (command/status) |
calibration |
/powertrain/engine |
Service | Trigger-based calibration |
long_calibration |
/powertrain/engine |
Action | Fibonacci-based long-running action |
Writing New Tests
Feature Test Template
Feature tests validate a single API capability:
```python from ros2_medkit_test_utils.gateway_test_case import GatewayTestCase from ros2_medkit_test_utils.launch_helpers import create_test_launch
def generate_test_description(): return create_test_launch( demo_nodes=[‘temp_sensor’], fault_manager=False, )
class TestMyFeature(GatewayTestCase): MIN_EXPECTED_APPS = 1 REQUIRED_APPS = {‘temp_sensor’}
def test_something(self):
File truncated at 100 lines see the full file
Changelog for package ros2_medkit_integration_tests
0.4.0 (2026-03-20)
- Integration tests for SOVD resource locking (acquire, release, extend, fault clear with locks, expiration, parent propagation)
- Integration tests for SOVD script execution endpoints (all formats, params, output, failure, lifecycle)
- Integration tests for graph provider plugin (external plugin loading, entity introspection)
- Integration tests for beacon discovery plugins (topic beacon, parameter beacon)
- Integration tests for OpenAPI/docs endpoint
- Integration tests for logging endpoints (
/logs,/logs/configuration) - Integration tests for linux introspection plugins (launch_testing and Docker-based)
- Port isolation per integration test via CMake-assigned unique ports
-
ROS_DOMAIN_IDisolation for integration tests - Build: use shared cmake modules from
ros2_medkit_cmakepackage - Contributors: \@bburda
0.3.0 (2026-02-27)
Package Dependencies
System Dependencies
| Name |
|---|
| python3-requests |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged ros2_medkit_integration_tests at Robotics Stack Exchange
Package Summary
| Version | 0.4.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/selfpatch/ros2_medkit.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-03-22 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- bburda
Authors
ros2_medkit_integration_tests
Integration tests, demo nodes, and shared test utilities for ros2_medkit.
Overview
This package contains everything needed to validate the ros2_medkit system end-to-end:
- Demo nodes – automotive-themed C++ nodes (sensors, actuators, services, actions) that produce realistic ROS 2 traffic for testing
- Feature tests – focused tests that validate individual API features (data access, operations, faults, SSE, CORS, auth, etc.)
- Scenario tests – end-to-end stories that exercise multi-step workflows (fault lifecycle, action execution, discovery modes, subscriptions, etc.)
-
Shared test library (
ros2_medkit_test_utils) – base test case, launch helpers, and assertion utilities shared across all test files
Package Structure
ros2_medkit_integration_tests/
demo_nodes/ # C++ demo node sources
launch/ # demo_nodes.launch.py
ros2_medkit_test_utils/
__init__.py
constants.py # DEFAULT_PORT, timeouts
coverage.py # GCOV_PREFIX helpers for CI
gateway_test_case.py # GatewayTestCase base class
launch_helpers.py # create_test_launch(), DEMO_NODE_REGISTRY
test/
features/ # Focused API feature tests
scenarios/ # End-to-end workflow tests
Running Tests
# Build everything
colcon build --symlink-install
source install/setup.bash
# All integration tests
colcon test --packages-select ros2_medkit_integration_tests
colcon test-result --verbose
# Single test
colcon test --packages-select ros2_medkit_integration_tests \
--ctest-args -R test_data_read
# Feature tests only
colcon test --packages-select ros2_medkit_integration_tests \
--ctest-args -L feature
# Scenario tests only
colcon test --packages-select ros2_medkit_integration_tests \
--ctest-args -L scenario
Demo Nodes
Launch all demo nodes for manual testing or the web UI:
ros2 launch ros2_medkit_integration_tests demo_nodes.launch.py
| Node | Namespace | Type | Description |
|---|---|---|---|
temp_sensor |
/powertrain/engine |
Publisher | Engine temperature (2 Hz) |
rpm_sensor |
/powertrain/engine |
Publisher | RPM readings (2 Hz) |
pressure_sensor |
/chassis/brakes |
Publisher | Brake pressure (2 Hz) |
status_sensor |
/body/door/front_left |
Publisher | Door open/closed (0.5 Hz) |
lidar_sensor |
/perception/lidar |
Publisher + Fault reporter | LaserScan with fault detection |
actuator |
/chassis/brakes |
Subscriber + Publisher | Brake actuator (command/feedback) |
controller |
/body/lights |
Subscriber + Publisher | Light controller (command/status) |
calibration |
/powertrain/engine |
Service | Trigger-based calibration |
long_calibration |
/powertrain/engine |
Action | Fibonacci-based long-running action |
Writing New Tests
Feature Test Template
Feature tests validate a single API capability:
```python from ros2_medkit_test_utils.gateway_test_case import GatewayTestCase from ros2_medkit_test_utils.launch_helpers import create_test_launch
def generate_test_description(): return create_test_launch( demo_nodes=[‘temp_sensor’], fault_manager=False, )
class TestMyFeature(GatewayTestCase): MIN_EXPECTED_APPS = 1 REQUIRED_APPS = {‘temp_sensor’}
def test_something(self):
File truncated at 100 lines see the full file
Changelog for package ros2_medkit_integration_tests
0.4.0 (2026-03-20)
- Integration tests for SOVD resource locking (acquire, release, extend, fault clear with locks, expiration, parent propagation)
- Integration tests for SOVD script execution endpoints (all formats, params, output, failure, lifecycle)
- Integration tests for graph provider plugin (external plugin loading, entity introspection)
- Integration tests for beacon discovery plugins (topic beacon, parameter beacon)
- Integration tests for OpenAPI/docs endpoint
- Integration tests for logging endpoints (
/logs,/logs/configuration) - Integration tests for linux introspection plugins (launch_testing and Docker-based)
- Port isolation per integration test via CMake-assigned unique ports
-
ROS_DOMAIN_IDisolation for integration tests - Build: use shared cmake modules from
ros2_medkit_cmakepackage - Contributors: \@bburda
0.3.0 (2026-02-27)
Package Dependencies
System Dependencies
| Name |
|---|
| python3-requests |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged ros2_medkit_integration_tests at Robotics Stack Exchange
Package Summary
| Version | 0.4.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/selfpatch/ros2_medkit.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-03-22 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- bburda
Authors
ros2_medkit_integration_tests
Integration tests, demo nodes, and shared test utilities for ros2_medkit.
Overview
This package contains everything needed to validate the ros2_medkit system end-to-end:
- Demo nodes – automotive-themed C++ nodes (sensors, actuators, services, actions) that produce realistic ROS 2 traffic for testing
- Feature tests – focused tests that validate individual API features (data access, operations, faults, SSE, CORS, auth, etc.)
- Scenario tests – end-to-end stories that exercise multi-step workflows (fault lifecycle, action execution, discovery modes, subscriptions, etc.)
-
Shared test library (
ros2_medkit_test_utils) – base test case, launch helpers, and assertion utilities shared across all test files
Package Structure
ros2_medkit_integration_tests/
demo_nodes/ # C++ demo node sources
launch/ # demo_nodes.launch.py
ros2_medkit_test_utils/
__init__.py
constants.py # DEFAULT_PORT, timeouts
coverage.py # GCOV_PREFIX helpers for CI
gateway_test_case.py # GatewayTestCase base class
launch_helpers.py # create_test_launch(), DEMO_NODE_REGISTRY
test/
features/ # Focused API feature tests
scenarios/ # End-to-end workflow tests
Running Tests
# Build everything
colcon build --symlink-install
source install/setup.bash
# All integration tests
colcon test --packages-select ros2_medkit_integration_tests
colcon test-result --verbose
# Single test
colcon test --packages-select ros2_medkit_integration_tests \
--ctest-args -R test_data_read
# Feature tests only
colcon test --packages-select ros2_medkit_integration_tests \
--ctest-args -L feature
# Scenario tests only
colcon test --packages-select ros2_medkit_integration_tests \
--ctest-args -L scenario
Demo Nodes
Launch all demo nodes for manual testing or the web UI:
ros2 launch ros2_medkit_integration_tests demo_nodes.launch.py
| Node | Namespace | Type | Description |
|---|---|---|---|
temp_sensor |
/powertrain/engine |
Publisher | Engine temperature (2 Hz) |
rpm_sensor |
/powertrain/engine |
Publisher | RPM readings (2 Hz) |
pressure_sensor |
/chassis/brakes |
Publisher | Brake pressure (2 Hz) |
status_sensor |
/body/door/front_left |
Publisher | Door open/closed (0.5 Hz) |
lidar_sensor |
/perception/lidar |
Publisher + Fault reporter | LaserScan with fault detection |
actuator |
/chassis/brakes |
Subscriber + Publisher | Brake actuator (command/feedback) |
controller |
/body/lights |
Subscriber + Publisher | Light controller (command/status) |
calibration |
/powertrain/engine |
Service | Trigger-based calibration |
long_calibration |
/powertrain/engine |
Action | Fibonacci-based long-running action |
Writing New Tests
Feature Test Template
Feature tests validate a single API capability:
```python from ros2_medkit_test_utils.gateway_test_case import GatewayTestCase from ros2_medkit_test_utils.launch_helpers import create_test_launch
def generate_test_description(): return create_test_launch( demo_nodes=[‘temp_sensor’], fault_manager=False, )
class TestMyFeature(GatewayTestCase): MIN_EXPECTED_APPS = 1 REQUIRED_APPS = {‘temp_sensor’}
def test_something(self):
File truncated at 100 lines see the full file
Changelog for package ros2_medkit_integration_tests
0.4.0 (2026-03-20)
- Integration tests for SOVD resource locking (acquire, release, extend, fault clear with locks, expiration, parent propagation)
- Integration tests for SOVD script execution endpoints (all formats, params, output, failure, lifecycle)
- Integration tests for graph provider plugin (external plugin loading, entity introspection)
- Integration tests for beacon discovery plugins (topic beacon, parameter beacon)
- Integration tests for OpenAPI/docs endpoint
- Integration tests for logging endpoints (
/logs,/logs/configuration) - Integration tests for linux introspection plugins (launch_testing and Docker-based)
- Port isolation per integration test via CMake-assigned unique ports
-
ROS_DOMAIN_IDisolation for integration tests - Build: use shared cmake modules from
ros2_medkit_cmakepackage - Contributors: \@bburda
0.3.0 (2026-02-27)
Package Dependencies
System Dependencies
| Name |
|---|
| python3-requests |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged ros2_medkit_integration_tests at Robotics Stack Exchange
Package Summary
| Version | 0.4.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/selfpatch/ros2_medkit.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-03-22 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- bburda
Authors
ros2_medkit_integration_tests
Integration tests, demo nodes, and shared test utilities for ros2_medkit.
Overview
This package contains everything needed to validate the ros2_medkit system end-to-end:
- Demo nodes – automotive-themed C++ nodes (sensors, actuators, services, actions) that produce realistic ROS 2 traffic for testing
- Feature tests – focused tests that validate individual API features (data access, operations, faults, SSE, CORS, auth, etc.)
- Scenario tests – end-to-end stories that exercise multi-step workflows (fault lifecycle, action execution, discovery modes, subscriptions, etc.)
-
Shared test library (
ros2_medkit_test_utils) – base test case, launch helpers, and assertion utilities shared across all test files
Package Structure
ros2_medkit_integration_tests/
demo_nodes/ # C++ demo node sources
launch/ # demo_nodes.launch.py
ros2_medkit_test_utils/
__init__.py
constants.py # DEFAULT_PORT, timeouts
coverage.py # GCOV_PREFIX helpers for CI
gateway_test_case.py # GatewayTestCase base class
launch_helpers.py # create_test_launch(), DEMO_NODE_REGISTRY
test/
features/ # Focused API feature tests
scenarios/ # End-to-end workflow tests
Running Tests
# Build everything
colcon build --symlink-install
source install/setup.bash
# All integration tests
colcon test --packages-select ros2_medkit_integration_tests
colcon test-result --verbose
# Single test
colcon test --packages-select ros2_medkit_integration_tests \
--ctest-args -R test_data_read
# Feature tests only
colcon test --packages-select ros2_medkit_integration_tests \
--ctest-args -L feature
# Scenario tests only
colcon test --packages-select ros2_medkit_integration_tests \
--ctest-args -L scenario
Demo Nodes
Launch all demo nodes for manual testing or the web UI:
ros2 launch ros2_medkit_integration_tests demo_nodes.launch.py
| Node | Namespace | Type | Description |
|---|---|---|---|
temp_sensor |
/powertrain/engine |
Publisher | Engine temperature (2 Hz) |
rpm_sensor |
/powertrain/engine |
Publisher | RPM readings (2 Hz) |
pressure_sensor |
/chassis/brakes |
Publisher | Brake pressure (2 Hz) |
status_sensor |
/body/door/front_left |
Publisher | Door open/closed (0.5 Hz) |
lidar_sensor |
/perception/lidar |
Publisher + Fault reporter | LaserScan with fault detection |
actuator |
/chassis/brakes |
Subscriber + Publisher | Brake actuator (command/feedback) |
controller |
/body/lights |
Subscriber + Publisher | Light controller (command/status) |
calibration |
/powertrain/engine |
Service | Trigger-based calibration |
long_calibration |
/powertrain/engine |
Action | Fibonacci-based long-running action |
Writing New Tests
Feature Test Template
Feature tests validate a single API capability:
```python from ros2_medkit_test_utils.gateway_test_case import GatewayTestCase from ros2_medkit_test_utils.launch_helpers import create_test_launch
def generate_test_description(): return create_test_launch( demo_nodes=[‘temp_sensor’], fault_manager=False, )
class TestMyFeature(GatewayTestCase): MIN_EXPECTED_APPS = 1 REQUIRED_APPS = {‘temp_sensor’}
def test_something(self):
File truncated at 100 lines see the full file
Changelog for package ros2_medkit_integration_tests
0.4.0 (2026-03-20)
- Integration tests for SOVD resource locking (acquire, release, extend, fault clear with locks, expiration, parent propagation)
- Integration tests for SOVD script execution endpoints (all formats, params, output, failure, lifecycle)
- Integration tests for graph provider plugin (external plugin loading, entity introspection)
- Integration tests for beacon discovery plugins (topic beacon, parameter beacon)
- Integration tests for OpenAPI/docs endpoint
- Integration tests for logging endpoints (
/logs,/logs/configuration) - Integration tests for linux introspection plugins (launch_testing and Docker-based)
- Port isolation per integration test via CMake-assigned unique ports
-
ROS_DOMAIN_IDisolation for integration tests - Build: use shared cmake modules from
ros2_medkit_cmakepackage - Contributors: \@bburda
0.3.0 (2026-02-27)
Package Dependencies
System Dependencies
| Name |
|---|
| python3-requests |