Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

catkin test does not find unit test targets created by add_test since 0.8.0 #752

Open
ssnover opened this issue Apr 27, 2023 · 0 comments
Open

Comments

@ssnover
Copy link

ssnover commented Apr 27, 2023

System Info

  • Operating System: 5.4.0-147-generic #164-Ubuntu SMP Tue Mar 21 14:23:17 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
  • Python Version: 3.8.10
  • Version of catkin_tools: 0.8.0 (from pip)
  • ROS Distro: noetic

Expected Behavior

We've been creating test targets with a combination of add_executable and add_test in our CMakeLists.txt files. We were using an older version of catkin_tools for a while and it successfully discovered the unit test binaries and executed them when invoking catkin test. It is expected that tests built this way are discovered and run.

Actual Behavior

After updating past catkin_tools 0.7, tests built this way are silently no longer discovered or run.

Steps to Reproduce the Issue

Create a ROS package with a unit test declared with add_executable and add_test. Using catkin_tools 0.7.2 or earlier, run catkin test and see tests are run (easier with a purposefully failing gtest). Update to catkin_tools 0.8.0 or later. Observe that tests are no longer run when catkin test is invoked.

Additional Information

I see that a native catkin test verb was introduced in v0.8.0 and it looks like previously the command was just a passthrough to another CLI. It looks like when this happened the behavior changed. We were able to get discovery to happen again using catkin_add_gtest. Incidentally, a member of my team was able to get the tests to run if invoked with catkin test --test-target test --continue-on-failure --verbose.

If it's just expected that ROS/catkin users are to use catkin_add_gtest, that's fair, but I couldn't find any documentation about the change and this issue will at least show up in searches. I suspect that larger ROS codebases could have a mix of the two approaches and it won't be as trivial to discover that certain unit tests are no longer running.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant