在ddev docker容器中使用drupalextension运行硒测试

时间:2018-07-25 21:07:13

标签: selenium drupal ddev

刚刚从rfay获得有关Drupal松弛的帮助,并希望在此同时发布问题和解决方案,以供他人参考。

问题:在ddev容器中进行基于DrupalExtension的测试。这包括向现有配置添加单独的硒容器,并使其能够引用def web_socket_loop(): GPIO.output(pin, GPIO.LOW) time.sleep(5) set_high(GPIO) 主机容器。

1 个答案:

答案 0 :(得分:2)

先决条件:拥有一个运行Drupal的ddev实例。有examples already可以进行设置,因此在此不再赘述。

上述任务需要以下补充:

  • 硒容器:运行硒的容器。我使用了chrome独立版本。将以下内容添加到您的.ddev文件夹中:

文件:docker-compose.selenium.yml

version: '3'

services:
  selenium:
    container_name: ddev-${DDEV_SITENAME}-selenium
    image: selenium/standalone-chrome-debug:3.13.0-argon
    networks:
      default:
        aliases:
          - web

最后一点很关键;硒容器需要了解运行drupal实例的Web容器以与其连接,但是由于它是Web容器的依赖项,因此不能使用“链接”。您必须使用别名方法,并使用默认网络。

  • 撰写覆盖:覆盖Web容器的默认值以将硒容器链接到它的文件。

文件:docker-compose.override.yml

version: '3'

services:
  web:
    depends_on:
      - db
      - selenium
    links:
      - db:db
      - selenium:selenium
  • Behat配置:以下MinkExtension的Behat配置对我有用:

(修改文件behat.yml)

default:
  extensions:
    "Behat\\MinkExtension":
      goutte: null
      base_url: 'http://web'
      javascript_session: selenium2
      selenium2:
        browser: "chrome"
        wd_host: http://selenium:4444/wd/hub
        capabilities:
          extra_capabilities:
            idle-timeout: 50

base_urlwd_host条目对于使它起作用是至关重要的。

有关最后一个的更多信息,请参见drupalextension docs

中的步骤5。