Comments (5)
For any kind of automation it is crucial to distinguish failures to run something vs. some tests returning non-zero return codes. In my opinion this it is a strict requirement for our tools to satisfy this requirement. With the proposal it is not possible anymore to identify if the invocation of test
failed for any reason. Nor is there any other way to achieve that (e.g. by invoking more commands). That prevents those use cases to operate correctly (e.g. sending a notification email in case tests fail, but not when something in the infrastructure / invocation failed) which I consider an unacceptable "cost" which can't be outweigh by any benefit.
On the other hand with the current state your use case is easily possible by invoking two two commands.
There is an alternative which continues meeting the requirement stated above as well as your desire to get a non-zero return code for any kind of failure. The ament test
command could offer an argument to choose the desired return code behavior.
from ament_tools.
There is an alternative which continues meeting the requirement stated above as well as your desire to get a non-zero return code for any kind of failure. The ament test command could offer an argument to choose the desired return code behavior.
Ah, that sounds like the perfect compromise! How about this change instead: change the default behavior of ament test
according to my earlier proposal, but simultaneously offer an option to produce the current behavior? Automated systems would supply the option to get the current behavior, but regular users who don't supply that option would get the new behavior.
from ament_tools.
I am not sure if this is relevant here, but I do remember that we decided to ignore the return code in the first place because all our successful builds with test failures were marked as failed on the buildfarm (e.g. ). So https://github.com/ament/ament_tools/pull/110/files has been made so that we could make the difference between a failing job and a job with failing tests.
EDIT: duplicate of previous comment
from ament_tools.
👍 I don't mind what the default behavior is as long as the mandatory use cases are still possible.
from ament_tools.
Fixed by #141.
from ament_tools.
Related Issues (20)
- changing ament install prefix doesn't change the cmake install prefix HOT 2
- uninstalling after installing to a different directory HOT 5
- uninstall verb fails HOT 1
- We should validate ament_cmake packages after installation HOT 6
- Sourcing overlay workspace's setup file isn't enough for python packages HOT 2
- ament build_pkg doesn't respect other verbs HOT 10
- assert that ament_cmake packages register in the ament_index HOT 2
- No setup.bash for --isolated compilation HOT 2
- Add error summary at the end of `ament test` HOT 4
- Parallel build waiting for package forever HOT 1
- Symlinked overlay installation doesn't have preference for ament_python packages HOT 8
- option to build only a package and its dependencies HOT 6
- Build of package on windows hangs sometimes HOT 2
- Because of unquoted path ament fails on Windows HOT 3
- ament build fails to find solution file when cmake project name differs from package manifest name HOT 4
- Test Report Generation for ament test tools HOT 2
- SyntaxError when building pure Python package with Extension HOT 6
- Failed to compile extension due to out-of-source build HOT 5
- python3-pytest doesn't support option "-o" and it results in error while running python unittest of a ros2 component HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ament_tools.