我们如何将字典从特征文件传递到测试文件。 (pytest-bdd)

问题描述 投票:0回答:2

我正在尝试将字典从功能文件传递到我的测试文件。我搜索了很多但找不到传递字典的方法。

下面是我想在 pytest-bdd 中实现的行为中可用的一个示例

参考链接: 如何在 python 行为 .feature 文件中传递列表或字典等对象

如果有人已经有相同的解决方案,请告诉我。

谢谢你。

python pytest gherkin python-behave pytest-bdd
2个回答
2
投票

经过多次尝试,现在我能够做到这一点。下面是我尝试过的脚本。 特征文件:

  Scenario Outline: Dictionary
    Given Access Dictionary list
      [
        { "abc":"test1","def":"test2"},{ "ghi":"test3","jkl":"test4"}

      ]

测试文件:

@given(parsers.parse('Access Dictionary list\n{table_data:json}', extra_types=dict(json=json.loads)), target_fixture="mytabledata")
def step_setup(table_data):
    global data
    MyTableData = UserList(table_data)
    #print(MyTableData)
    print(MyTableData[1]["ghi"])

输出:测试3

很高兴我能够自己做:)


0
投票

可以分享一下table_data吗?当我执行上面的测试类时,它抛出错误

未找到 E 夹具“table_data”

  available fixtures: _driver, _driverAPI, _driverlaunchgnp, _pytest_bdd_example, cache, capfd, capfdbinary, caplog, capsys, capsysbinary, doctest_namespace, extra, extras, include_metadata_in_junit_xml, metadata, monkeypatch, pytestbdd_given_Access Dictionary list
  {table_data:json}, pytestbdd_given_trace, pytestbdd_then_trace, pytestbdd_when_trace, pytestconfig, record_property, record_testsuite_property, record_xml_attribute, recwarn, tmp_path, tmp_path_factory, tmpdir, tmpdir_factory
  use 'pytest --fixtures [testpath]' for help on them.
© www.soinside.com 2019 - 2024. All rights reserved.