【问题标题】:How to write a yaml in python for multiple test cases?如何在 python 中为多个测试用例编写 yaml?
【发布时间】:2019-05-02 07:41:07
【问题描述】:

我正在使用 python 学习机器人框架。我正在寻找将数据传递给两个不同测试用例的方法。在java中,这很容易。我为 yaml 创建了一个类,并在 yaml 文件中为两个单独的测试用例提供了数据。我如何在 Python 中拥有这样的架构?当我尝试在 yaml 文件中提供数据时,出现重复键错误。 有人可以告诉我我做错了什么,并建议使用单个 yaml 将数据提供给多个测试用例的方法吗? Java_yaml Python_yaml

【问题讨论】:

  • 是的,有人可以告诉你哪里出了问题,但是从截图中很难看出(你真的应该剪切和粘贴内容,替换应该保持隐藏的字符串),以便想要的人为了帮助您可以尝试重现错误。
  • 请不要提供指向您的数据图片的链接。请花时间复制、粘贴和格式化它作为您问题的一部分。

标签: python python-2.7 yaml robotframework pyyaml


【解决方案1】:

您确定遇到重复键错误吗?因为随着 输入你提供的你会得到一个映射值是不允许的错误:

import sys
import ruamel.yaml

yaml_str = """\
Get_Request
  alias : 'amway1'
  session_url : 'url2'

Post_Request
    alias : 'amway2'
    session_url : 'url2'
"""

yaml = ruamel.yaml.YAML()
try:
    data = yaml.load(yaml_str)
except Exception as e:
    print(e)

给出:

mapping values are not allowed here
  in "<unicode string>", line 2, column 9:
      alias : 'amway1'
            ^ (line: 2)

这是因为您尝试使用多行纯标量作为键 该 YAML 的开头,那些是不允许的(它们必须简单,而不是多行)。 您可能忘记在 Get_RequestPost_Request 之后插入冒号 (:)。

Get_Request:
  alias : 'amway1'
  session_url : 'url2'

Post_Request:
  alias : 'amway2'
  session_url : 'url2'

(您还应该一致地缩进您的 YAML,使用相同的数量 键前的空格,现在你有 2 和 4 个位置。那不是 生成有效的 YAML 是必要的,解析器会接受它,但它是 在人类检查您的输入时正确查看结构)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多