如何同时调用Scenario Outline中的Desktop与Cloud示例?
解决方案
错误原因
你当前的写法不符合Cucumber Scenario Outline的语法规则:Scenario Outline的<变量>只能引用当前Example表格中的列名,无法通过<Desktop.app>这种方式跨Example调用参数。每个Example会被单独解析为一个独立的测试场景,不能直接跨场景引用数据。
方案1:按环境分别执行测试(推荐)
如果你的需求是针对Desktop和Cloud两个环境,分别验证对应环境下的App安装状态,可以调整Scenario Outline的结构,把环境作为参数纳入Example表格:
Scenario Outline: 验证各环境下的App安装状态 Given <app> 已安装在我的<environment>设备上 And <app1> 已安装在我的<environment>设备上 Examples: | environment | app | app1 | | Desktop | instagram | facebook | | Cloud | instagram | facebook |
对应的Python Step定义可调整为(如需区分环境逻辑):
@given("<app> 已安装在我的<environment>设备上") def app_installation(app, environment): # 可根据环境添加差异化安装/验证逻辑 install_app(app, environment)
方案2:同时验证两个环境的App安装
如果你的需求是在同一个测试场景中同时验证Desktop和Cloud两个环境的App安装,则需要修改Scenario结构,将两个环境的参数合并到同一个Example表格中:
Scenario: 跨Desktop和Cloud环境验证App安装状态 Given <desktop_app> 已安装在我的Desktop设备上 And <desktop_app1> 已安装在我的Desktop设备上 And <cloud_app> 已安装在我的Cloud设备上 And <cloud_app1> 已安装在我的Cloud设备上 Examples: | desktop_app | desktop_app1 | cloud_app | cloud_app1 | | instagram | facebook | instagram | facebook |
对应的Step定义同上,只需确保参数匹配即可。
内容的提问来源于stack exchange,提问作者Rana
相关产品推荐
相关产品推荐

