Support dynamic plugins support for the test framework
Currently the implementation for the two supported frameworks shell and beakerlib is hard-coded in the tmt.steps.execute module, mainly by the check_shell() and check_beakerlib() methods. It would be nice to clean up the implementation and move the framework code into a separate modules which would be dynamically loaded as plugins. This would allow better extensibility in the future.
Would be nice, to have it as separate check plugins for shell and beakerlib frameworks, thats true, than have it hardcoded.
As we've discussed on meeting. Not sure if also some other framework has special handling as beakerlib needs.
I think that most of frameworks indicates via return code state of run + possible to output all necessary info to stdout. e.g.
pytest -v -s testavocado --show test run /bin/true
So from my perspective beakerlib handling does much more than framework, and it is more less exception than typical framwork behaviour.
another think is that lots of frameworks allows to generate e.g. xunit outputs, so that instead of special frameworks odules, it could be enough use current ones maybe + xunit/junit output parser.
Would be nice, to have it as separate check plugins for shell and beakerlib frameworks, thats true, than have it hardcoded.
I think we could make it really simple to create the frameworks, like inheriting mostly everything from shell and changing just few methods.
@ZhukovGreen, would you be possibly interested in looking into this?
I will, thx @psss
I believe this one has been covered by #2160.