【问题标题】:Sylius + Vagrant + Behat not workingSylius + Vagrant + Behat 不工作
【发布时间】:2016-12-21 11:22:36
【问题描述】:

我们正在尝试在 vagrant 机器中运行 Behat 测试,但我们总是遇到问题。

这是我们正在使用的 Vagrant 机器https://github.com/vranac/vagrant-sylius-setup

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

这里是示例

在错误后我们得到的屏幕截图中说路线丢失?

知道如何解决这个问题吗?

【问题讨论】:

  • 您是否在失败的步骤中使用了 open() 方法?它似乎通过 URL 检查是否在某个页面上,但找到不同的页面。
  • 我也面临同样的问题。我没有意识到这与 vagrant VM 有任何关系(但是是的,我的问题也在 VM 中)。你有解决这个问题的运气吗?如果是这样,你能分享一下答案吗?

标签: symfony testing vagrant behat sylius


【解决方案1】:

我已经遇到并设法解决了这个特定问题。

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

目前对我来说可行的组合是 ChromeDriver 2.30 + Google Chrome 59.0 - 检查这些版本。

我必须更改的另一件事是会话处理程序以使用正确的会话而不是 mocksess(ions)。在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 返回网络服务器时,它尝试使用@ 访问它987654327@ 用户,由于权限限制而失败。作为一种解决方法,我现在也在 www-data 用户下运行 behat:sudo -E -u www-data bin/behat ...。缓存也可能出现类似问题。

似乎对于 Vagrant 而言,Sylius 特别强制将缓存/日志目录放置在 /dev/shm/sylius 中,这在共享目录(主机和来宾之间)的情况下是性能提升,但也意味着严格的权限检查(参见 @987654321 @)

【讨论】:

    猜你喜欢
    • 2017-01-25
    • 2018-12-11
    • 2014-10-24
    • 1970-01-01
    • 1970-01-01
    • 2018-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多