【问题标题】:"You cannot define a mapping item when in a sequence" when running phpunit in symfony在 symfony 中运行 phpunit 时,“您无法在序列中定义映射项”
【发布时间】:2013-05-10 13:00:39
【问题描述】:

当我尝试在我的 symfony 项目上运行 phpunit 时出现以下错误:

$ phpunit -c app

1) [...]\DefaultControllerTest::testIndex
Symfony\Component\Config\Exception\FileLoaderLoadException: Cannot import resource "/srv/http/typeform/app/config/config.yml" from "/srv/http/typeform/app/config/config_dev.yml".

/srv/http/typeform/vendor/symfony/src/Symfony/Component/Config/Loader/FileLoader.php:89
[...]
/srv/http/typeform/vendor/symfony/src/Symfony/Bundle/FrameworkBundle/Test/WebTestCase.php:39
/srv/http/typeform/src/QuickyForm/PublicBundle/Tests/Controller/DefaultControllerTest.php:11

Caused by
Symfony\Component\Yaml\Exception\ParseException: You cannot define a mapping item when in a sequence in "\/srv\/http\/typeform\/app\/config\/config.yml"

/usr/share/pear/Symfony/Component/Yaml/Parser.php:116
[...]
/srv/http/typeform/app/bootstrap.php.cache:520
/srv/http/typeform/vendor/symfony/src/Symfony/Bundle/FrameworkBundle/Test/WebTestCase.php:39
/srv/http/typeform/src/QuickyForm/PublicBundle/Tests/Controller/DefaultControllerTest.php:11

当我调用static::createClient();时,它似乎崩溃了

这是我的 config_test.yml

imports:
    - { resource: config_dev.yml }

【问题讨论】:

  • 您似乎缺少 config_test.yml 中的大部分默认 symfony 内容 - 有什么特别的原因吗?
  • 因为我在测试,所以当我使用默认的config_test.yml时问题是一样的

标签: symfony phpunit


【解决方案1】:

您收到的错误表明该应用无法解析您的“config.yml”,因为“您无法在序列中定义映射项”。

这意味着在 yml 文件中定义数组值时,您不能同时提供“key: value”形式的映射条目和“-item”形式的序列条目——所有值必须是一种形式或另一种形式。

所以,没关系:

group: 
  key: value
  key: value

这样也行:

group: 
  - item 
  - item 

这样不行:

group: 
  key: value
  - item 

这些错误表明您的 config.yml 中出现了最后一个表单,但如果是这种情况,它应该会导致在浏览器中运行您的应用程序时出现问题,而不仅仅是在 phpunit 下。

【讨论】:

  • 谢谢!最后我注意到当我将 Yaml 解析器从 2.x 替换为 1.x 时,错误消失了
  • 这很不幸,这样的格式会很有用persons:\\ size: 2\\ - Alice\\ - Bob
  • @alfC 把它想象成 json - 你可以有一个关联数组,其中键是字符串(也用于表示“对象”),或数字索引数组,其中数字键是由订单暗示,但您不能将两者结合起来。因此,在 json 中,您的 people 对象必须类似于 {size:2,data[Alice,Bob]}。
猜你喜欢
  • 1970-01-01
  • 2013-07-18
  • 2016-06-06
  • 1970-01-01
  • 1970-01-01
  • 2019-05-08
  • 1970-01-01
  • 2020-09-03
  • 1970-01-01
相关资源
最近更新 更多