-
Notifications
You must be signed in to change notification settings - Fork 129
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
Run tests against the installed version of the package (not the build/devel-time version) #738
Comments
I'm confused as to why you link to a |
You're right, that was a bad link. The Industrial CI job that succeeded on the flawed version is here: https://github.com/peci1/robot_body_filter/runs/3198426837?check_suite_focus=true . |
In can be detected, but it depends on your configuration.
As far as I know the tests are always run in the build/devel (?) space (for ROS1 < noetic). Missing install tags can be detected, if you configure a Another option is to try different builders, especially the isolated ones (including colcon). And of course you should use |
Thanks for the analysis. Yes, I'm now thinking about adding catkin lint which would probably catch this issue. But having the failure directly as a result of the CI test would be much nicer. Would sourcing the install space just before running the tests help, or does the |
I have not been able to find a definitive answer yet..
Just try it out:
Then you might want to create a dedicated test package. |
Okay, I'll try to dig deeper when I have time - which might be a few months unfortunately. But I'm marking this as a thing to do. Creating a dedicated test package sounds really cumbersome to me and not really the best way... Imagine every moveit package would need a dedicated test package to just test that the main package is installed correctly... |
Writing proper tests is always cumbersome! ;)
Not every package. If you have more than one package, then the install tags will get tested implicitly anyway.
I am open for suggestions :D |
Just a short heads-up - I've noticed that noetic actually runs tests with installspace sourced. melodic, however, does not. I think the reason is that the noetic system has catkin/catkin_tools#676 while the melodic one does not. I've tried looking up the exact place in ici and catkin tools where the devel/install-space decision would be made, but unsucessfully... The only difference I've found is that |
In recent release of robot_body_filter, I forgot to add
install
directives to some newly added libraries. These libraries are required for the package to work (the main library links to them).The package uses industrial CI to run tests and I thought this kind of issues would get caught in the CI. That means I expected that CI would install the package, then build the tests, and then run the tests against the installed version of the package. But e.g. build https://build.ros.org/job/Mbin_uB64__robot_body_filter__ubuntu_bionic_amd64__binary/101/ succeeded even with the missing directives, which could be explained by running the tests in the build/devel space instead.
I'm not sure if it's a bug in industrial CI or an expected behavior, but I'm reporting it anyways.
The text was updated successfully, but these errors were encountered: