← Back to list

tdd-ros2
by p1tl0rd
⭐ 3🍴 0📅 Jan 22, 2026
SKILL.md
name: tdd-ros2 description: ROS 2 Test-Driven Development workflow using gtest (C++) and pytest (Python). Enforces 80%+ coverage for critical nodes.
ROS 2 TDD Workflow
Core Principles
- Tests FIRST: Write
gtestorpytestbefore implementation. - Red-Green-Refactor: Test fail -> Code fix -> Optimize.
- Integration: Use
launch_testingfor node interaction tests.
Workflow
1. Define Requirements (User Story)
"As a robot, I need to stop when obstacle < 0.5m."
2. Write Test Case
C++ (GTest)
TEST_F(SafetyNodeTest, StopsOnObstacle) {
node_->publish_scan(0.4); // Simulate 0.4m
auto cmd = node_->get_cmd_vel();
EXPECT_EQ(cmd.linear.x, 0.0);
}
Python (Pytest)
def test_stop_on_obstacle(safety_node):
safety_node.publish_scan(0.4)
cmd = safety_node.get_cmd_vel()
assert cmd.linear.x == 0.0
3. Run Test (Fail)
colcon test --packages-select my_safety_pkg
4. Implement Logic
Write minimal code in safety_node to pass the test.
5. Verify & Coverage
colcon test --packages-select my_safety_pkg
colcon test-result --all
Tools
- Unit:
ament_cmake_gtest,ament_cmake_pytest - Integration:
launch_testing,osrf_pycommon - Mocking:
gmock(C++),unittest.mock(Python)
Score
Total Score
50/100
Based on repository quality metrics
✓SKILL.md
SKILL.mdファイルが含まれている
+20
○LICENSE
ライセンスが設定されている
0/10
○説明文
100文字以上の説明がある
0/10
○人気
GitHub Stars 100以上
0/15
○最近の活動
3ヶ月以内に更新がある
0/10
○フォーク
10回以上フォークされている
0/5
✓Issue管理
オープンIssueが50未満
+5
✓言語
プログラミング言語が設定されている
+5
○タグ
1つ以上のタグが設定されている
0/5
Reviews
💬
Reviews coming soon