问题描述
我正在开发一些行为驱动的开发,即使用 pytest-bdd 的样式测试。我们希望重用相同的功能和或多或少相同的步骤定义来对第三方 API 进行存根调用和实时调用,即我们希望重用测试代码进行集成和端到端测试。
我想知道是否有关于如何在 pytest_bdd 或 pytest 中处理模拟调用和真实调用之间交替的约定
这个问题类似:Running pytest tests against multiple backends? with an answer to add an parser option with an CancellationTokenSource
hook放在顶级CancellationToken.IsCancellationRequested
。
解决方法
在 api
中选择存根或实时 api 调用的一个好方法是添加一个带有 pytest_addoption 钩子的解析器选项。条件逻辑需要在相关测试中寻找这些选项。
这个对类似问题的回答是这种方法的来源并且有更多细节:https://stackoverflow.com/a/50686439/961659