python - 行为.use_step_matcher | 如何巧妙或有效地使用它?| 好的设计原则?
问题描述
我需要一些关于如何巧妙或有效地使用behave.use_step_matcher() 的指导。
A. 因此,我通过在文件中的所有导入后parse
声明所有功能来初始化默认匹配器。behave.use_step_matcher('parse')
environment.py
B. 现在在步骤文件中,对于某些步骤,我需要使用behave.use_step_matcher('re')
. 所以我只在这些步骤之前提到它。
C. 现在在 environment.py 文件中,在after_step(context, step)
钩子中,我重置为使用behave.use_step_matcher('parse')
匹配器。
我的问题是,在将匹配器更改为“re”的任何步骤之后,其他需要匹配器“解析”的步骤都不起作用。
我发现的 1 个解决方案是明确提及use_step_matcher
所有步骤。
但是https://jenisys.github.io/behave.example/step_matcher/using_matchers.html说要为所有功能设置默认匹配器,将其设置在environment.py
文件中,我已经这样做了。
另外,我正在将匹配器重置回文件parse
中的after_step
挂钩environment.py
。
那么为什么它不起作用呢?
你能帮我更好地理解它吗?
另外,将来我计划实现步骤库并在行为步骤(调用步骤的步骤)中调用行为步骤。在这种情况下,如果父步骤使用“matcher1”但嵌套步骤使用不同的匹配器(考虑到我们可以创建自定义匹配器)。
- 那么管理匹配器的最佳实践是什么?
如果你能指导我完成这件事,那将是非常友好的。
感谢您!
PS:
- 我对行为和 python 非常幼稚,我已阅读https://github.com/behave/behave/issues/613但什么都不懂。:(
解决方案
推荐阅读
- javascript - VS Code 没有在断点处显示正确的源代码
- python - 正则表达式保留一些内容并删除方括号中的所有内容
- ruby-on-rails - 在 Rails 中使用 Capybara 和 Selenium 测试 Google 地图标记
- php - 邮件()在特定页面上不起作用
- java - 如何使用 apache java poi 在 ms excel 中插入表格
- c# - Visual Studio 2008 中带有方法帖子的休息服务
- javascript - 突出显示 html 表的指定列上的值
- arrays - 如何用单元格数组中的“char”类型替换所有“string”类型?
- bamboo - 如何部署旧版本
- regex - Facebook视频网址上无与伦比的右括号