ScannerError:此处不允许映射值

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

使用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:这里不允许使用映射值E在“/Users/xxx/xxx/xxx/test_poc.tavern.yaml”第3行第9列中

尝试了很多这里提出的解决方案(其中大部分都是'在冒号之后放置一个空间'),没有快乐。

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

yaml pyyaml tavern
1个回答
1
投票

在YAML文档的根目录中,您可以使用键test_name进行映射,并将值作为普通标量tavern ....的起点。

解析器需要一个键,第二行具有与第一行相同的缩进,或者第一行的普通标量的延续。第二行是空的,因此在第三行继续保持相同的期望。在那里它发现了一个-,它比test_name的开头更进一步缩进,因此它不是关键,而是普通标量的一部分。然后它发现name也是第一行开始的普通标量的一部分,然后是:(冒号+空格)。

但是在普通标量中不允许使用冒号+空格,因为这会在另一个键值对的开始时产生潜在的模糊性。

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

更有可能的是,你应该包含一个以- name: list开头的结构的键,这是值。例如。:

test_name: tavern poc

stages:
  - name: list
    request:

(从第二个条目,你从谷歌搜索“tavern yaml”)

© www.soinside.com 2019 - 2024. All rights reserved.