yaml - ScannerError:此处不允许映射值
问题描述
使用 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: mapping values are not allowed here E in "/Users/xxx/xxx/xxx/test_poc.tavern.yaml", line 3, column 9
已经尝试了这里介绍的许多解决方案(其中大部分是“在冒号后放置一个空格”),但并不高兴。
Yamllint 给出了同样的错误......
解决方案
在 YAML 文档的根目录中,您有一个带有 key 的映射,test_name
而 value 是一个普通 scalar 的开头tavern ....
。
解析器需要一个键,缩进与第一行相同,在第二行或第一行的普通标量的延续。第二行是空的,所以它继续与第三行相同的期望。在那里它找到了一个-
比 的开头更缩进的test_name
,所以它不是键,而是普通标量的一部分。然后它还找到name
从第一行开始的普通标量的一部分,然后是:
(冒号+空格)。
但是,在纯标量中不允许使用冒号+空格,因为这会导致另一个键值对的开始存在潜在的歧义。
不太可能的解决方案是 tavern
在 YAML 文档的前后加上双引号。
更有可能的是,您应该包含一个以 this 开头的结构为其- name: list
值的键。例如:
test_name: tavern poc
stages:
- name: list
request:
(从您从谷歌搜索“tavern yaml”获得的第二个条目开始)
推荐阅读
- google-apps-script - 自动日期公式谷歌表
- php - Laravel 中断开的符号链接
- python - sqlalchemy hybrid_property 连接关系中的值
- amazon-ec2 - 构建服务器 EC2 的密钥对管理
- python - 运行代码时,它显示黑屏,而不是我退出代码时触发
- python-3.x - 蟒蛇 3 倍。Panda 打印特定 index_col 的 csv 计数行数
- c++ - Release vs Debug 版本:突然出现运行时错误
- c# - .NET Core 身份登录页面处理程序 OnGetAync()
- c++ - URLDownloadToFile 返回 E_ABORT C++
- python - 使用正则表达式在字符后立即查找单词