I need some guidance on how to smartly or efficiently use behave.use_step_matcher().
A. So I am initializing default matcher for all features as parse by declaring behave.use_step_matcher('parse') after all imports in environment.py file.
B. Now in step files, for some steps, I need to use behave.use_step_matcher('re'). So I mention it before those steps only.
C. Now in environment.py file, in after_step(context, step) hook, I reset to use behave.use_step_matcher('parse') matcher.
My problem is that after any step which changes matcher to 're', other steps that need matcher to be 'parse' do not work.
1 solution I found was to explicitly mention use_step_matcher for all steps.
But https://jenisys.github.io/behave.example/step_matcher/using_matchers.html says that to set default matcher for all features set it in environment.py file, which I have done.
Also I am resetting matcher back to parse in after_step hook in environment.py file.
-
So why it does not work?
-
Can u help me understand it better?
Also, in future I plan to implement steps library and call behave steps within a behave step (a step calling a step). And in this scenario if parent step uses 'matcher1' but nested steps use different matchers (considering we can create custom matchers).
- Then what are the best practices to manage matchers?
It would be very kind if you could guide me through this.
Thanking you!
PS:
- I am very naïve with behave & python, I have read https://github.com/behave/behave/issues/613 but did not understand anything. :(
Aucun commentaire:
Enregistrer un commentaire