After reading the blog, I didn’t quite get how pytest makes unit testing “easy and quick”. I mean it looks like it does, but did you find it easier and quicker than nosetests that ROS is already integrated with? I’m simply curious, as ROS allows to run unit testing by nosetests as well as integrate it into Node testing.
I should have elaborated on this. I have only tried nosetests
for testing parts of Machinekit. From what I know it just extends Python unittest, which is not great after all. nosetests
also supports test functions (no need to write a complex test runner class), which is great. However, pytest
seems to be a lot easier when it comes to writing and fixtures. Additionally, it makes great use of assert, including meaningful error messages. Writing pytests feels in my opinion just more natural and pythonic.
Not sure what you mean by “ROS seems to pick up the test data very well”. But I’d agree the test result is not the easiest to read. In your particular case, have you tried catkin_test_results?
ros$ catkin_test_results
build/ros_pytest/test_results/ros_pytest/rosunit-test_lib.xml: 2 tests, 0 errors, 1 failures, 0 skipped
Summary: 3 tests, 0 errors, 1 failures, 0 skipped
Actually looks good. I just wondered why it does not “crash” or abort with an error message when the tests are run. But I’m not that familiar with ROS yet.