关于 yaml 模式验证的错误(此处不允许映射值)是啥意思?
Posted
技术标签:
【中文标题】关于 yaml 模式验证的错误(此处不允许映射值)是啥意思?【英文标题】:What does the error ( mapping values are not allowed here) about yaml schema validation mean?关于 yaml 模式验证的错误(此处不允许映射值)是什么意思? 【发布时间】:2019-12-30 05:03:33 【问题描述】:我使用tavern
作为我的python 项目的测试框架。用于测试的模拟服务器在 yaml 文件中定义:
test_name: Test phonebook service
stages:
-name: Make sure we can create new contact
request:
url: http://localhost:9301/v2/contact
method: POST
response:
status_code: 200
body:
id: 1
当我运行测试时,我得到了这个错误:
/Users/joey/.pyenv/versions/3.7.2/lib/python3.7/site-packages/yaml/scanner.py:579: in fetch_value
self.get_mark())
E yaml.scanner.ScannerError: mapping values are not allowed here
E in "/Users/joey/dev/iress/devel/phonebook-service-api/src/api/tavern-tests/test_contact.tavern.yaml", line 5, column 11
第 5 行是 request:
,但我不知道这有什么问题。我认为这不是tavern
问题,而它看起来更像yaml
架构验证问题。
【问题讨论】:
将其粘贴到在线 yaml linter 中,您将看到相同的错误。如果你去掉名字前面的 - ,它就可以工作。 如果我删除名称前面的-
将不起作用,因为它希望stages
成为一个列表
我只是说yaml通过了,希望能帮助你缩小问题范围。
【参考方案1】:
最后我通过在-
和name
之间放置一个space
使其工作。
test_name: Test phonebook service
stages:
- name: Make sure we can create new contact
request:
url: http://localhost:9301/v2/contact
method: POST
response:
status_code: 200
body:
id: 1
【讨论】:
以上是关于关于 yaml 模式验证的错误(此处不允许映射值)是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章
如何调试 Helm 图表错误,例如“将 YAML 转换为 JSON 时出错:yaml:在此上下文中不允许映射值”?
AWS IAM Cloudformation YAML 模板错误:不允许使用“空”值