Sylius + Vagrant + Behat无法正常工作

时间:2016-12-21 11:22:36

标签: symfony testing vagrant behat sylius

我们正试图在流浪汉机器内运行Behat测试,但我们总是遇到问题。

这是我们使用https://github.com/vranac/vagrant-sylius-setup

的流浪汉机器

所以第一个问题是使用cookies,我们解决了这个问题,但现在每个@javascript的场景都失败了

以下是示例enter image description here

在错误后我们得到的屏幕截图显示缺少路线?

任何想法如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

我已经面对并设法解决了这个问题。

关键问题是ChromeWebdriver版本(2.29)与Google Chrome版本(59.0)不兼容,或者在设置Cookie方面存在错误(Changelog确实提到了一些关于Cookie的工作)。

目前我的工作组合是ChromeDriver 2.30 + Google Chrome 59.0 - 请查看这些版本。

我必须改变的另一件事是会话处理程序使用正确的会话而不是mocksess(离子)。在app/config/config_test.yml我已更改framework> session这样的部分:

framework:
    test: ~
    session:
        handler_id: session.handler.native_file
        save_path: '/tmp/php-sessions'

另一件需要检查的事情是,会话是在没有任何权限问题的情况下创建/读取/写入的。我确实在某个时刻遇到了问题,我在vagrant用户运行behat,因此它以此用户为所有者创建了会话文件,但当它通过Selenium / Chrome返回到网络服务器时,它尝试访问它使用www-data用户,由于权限限制而失败。作为一种解决方法,我现在正在www-data用户下运行:sudo -E -u www-data bin/behat ...。缓存也可能出现类似的问题。

对于Vagrant来说,Sylius似乎强制将缓存/日志目录放在/dev/shm/sylius中,这在共享目录(主机和来宾之间)的情况下是性能提升,但也意味着严格的权限检查(参见https://github.com/Sylius/Sylius/blob/79a5285/src/Sylius/Bundle/CoreBundle/Application/Kernel.php#L162-L164