问题:让基于Behat Drupal Extension的测试在ddev容器中工作。这包括向现有配置添加单独的selenium容器,能够运行Behat测试,以及能够引用web
主机容器。
发布于 2018-07-26 05:08:52
先决条件:拥有一个托管Drupal的工作ddev实例。有examples already可以设置它,所以我在这里不再重复。
上述任务需要添加以下内容:
文件: docker-compose.selenium.yml
version: '3.6'
services:
selenium:
container_name: ddev-${DDEV_SITENAME}-selenium
image: selenium/standalone-chrome-debug:3.13.0-argon
networks:
default:
aliases:
- web
最后一点很关键;selenium容器需要知道运行drupal实例的web容器才能连接到它,但因为它是web容器的依赖项,所以不能使用“链接”。您必须使用别名方法,使用默认网络。
文件: docker-compose.override.yml
version: '3.6'
services:
web:
depends_on:
- db
- selenium
links:
- db:db
- selenium:selenium
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_url
和wd_host
条目对于实现这一点至关重要。
有关最后一个步骤的详细信息,请参阅Behat Drupal Extension docs中的步骤5
通过使用以下内容创建一个名为behat.yml的文件来配置您的测试环境。请确保将base_url指向要测试的网站。不要包括尾部斜杠:
default:
suites:
default:
contexts:
- FeatureContext
- Drupal\DrupalExtension\Context\DrupalContext
- Drupal\DrupalExtension\Context\MinkContext
- Drupal\DrupalExtension\Context\MessageContext
- Drupal\DrupalExtension\Context\DrushContext
extensions:
Drupal\MinkExtension:
goutte: ~
selenium2: ~
base_url: http://seven.l
Drupal\DrupalExtension:
blackbox: ~
https://stackoverflow.com/questions/51527663
复制相似问题