tmt icon indicating copy to clipboard operation
tmt copied to clipboard

Support dynamic plugins support for the test framework

Open psss opened this issue 4 years ago • 4 comments

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.

psss avatar May 04 '21 08:05 psss

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 test
  • avocado --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.

jscotka avatar May 06 '21 06:05 jscotka

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.

pvalena avatar May 06 '21 15:05 pvalena

@ZhukovGreen, would you be possibly interested in looking into this?

psss avatar May 07 '21 14:05 psss

I will, thx @psss

zhukovgreen avatar May 07 '21 14:05 zhukovgreen

I believe this one has been covered by #2160.

psss avatar May 22 '25 09:05 psss