我遇到以下问题:
经典symfony 2项目,phpunit 5.1.7。
在一个yml配置文件中,我有类似这样的内容:
mobile_detect:
service:
mobile_detector: mobile_detect.mobile_detector.default
twig_extension_class: "SunCat\MobileDetectBundle\Twig\Extension\MobileDetectExtension"
我在本地计算机(ubuntu)上运行测试,一切正常。
然后我部署代码(aws环境)并尝试运行测试。一切都失败了,错误:
"Unescaped character \M".
我在yaml中看到双引号解析字符串所以\ M确实是一个未定义的字符。我的问题是......为什么它在本地工作?
此外,当我尝试访问normaly(通过apache - 浏览器调用)时,代码工作正常。为什么这也运作良好?
我想正确的方法是用单引号替换所有双引号,但这将非常耗时(在某些情况下无法替换所有使用它们,因为这可能是预期的)。有没有办法在测试机器上进行测试来解释yml,就像它们在本地机器上一样?
答案 0 :(得分:0)
有没有办法在测试机器上进行测试来解释yml,就像在本地机器上那样?
您在询问是否可以在其他位置重现本地计算机上代码的错误行为。根据不正确的行为,你可以做的最糟糕的事情之一;它往往会通过软件更新来修复。
正如您所述:正确的方法是修复无效的YAML文件。无论是使用单引号还是使用另一个反斜杠转义反斜杠。当您更新软件堆栈时,没有任何解决方案可以保证当前的YAML文件能够正常工作。