ScannerError:此处不允许使用映射值

时间:2019-03-25 22:08:57

标签: yaml pyyaml tavern

使用Tavern并尝试针对此Yaml运行tavern-ci:

test_name: tavern poc

  - name: list
    request:
      url: https://xxx.xxx.xxx.us/api/v3/institutions/
      method: GET
    response:
      status_code: 200
      headers:
        content-type: application/json
      save:
        body:
          content: content

我越来越 E ScannerError:此处不允许使用映射值 在“ /Users/xxx/xxx/xxx/test_poc.tavern.yaml”第3行第9列中的E

尝试了此处介绍的许多解决方案(其中大多数是“在结肠后面加一个空格”)。

Yamllint给出了相同的错误...

1 个答案:

答案 0 :(得分:1)

在YAML文档的根部,您有一个键为test_name的映射,并且值为纯标量tavern ....的开头。

解析器在第二行上期望键,该键具有与第一行相同的缩进,或者在第一行起您的纯标量的延续。第二行是空的,因此继续对第三行具有相同的期望。在那里找到-,其缩进程度比test_name的开始缩进,因此它不是键,而是普通标量的一部分。然后,它发现name也是从第一行开始然后是:(冒号+空格)的普通标量的一部分。

但是在普通标量中不允许使用冒号+空格,因为这会给另一个键值对的开头带来潜在的歧义。

不太可能的解决方案是在tavern之前和YAML文档的末尾加上双引号。

您很有可能应该包含一个键,该键的值以- name: list开头。例如:

test_name: tavern poc

stages:
  - name: list
    request:

(从第二个条目中,您可以通过谷歌搜索“ tavern yaml”获得)