运行 在 DDEV 容器中使用 Behat Drupal Extension 进行硒测试
Running selenium tests using Behat Drupal Extension inside DDEV containers
问题:获取在 ddev 容器内工作的基于 Behat Drupal Extension 的测试。这包括向现有配置添加单独的硒容器,能够 运行 Behat 测试,以及能够引用 web
主机容器。
先决条件:有一个运行 Drupal 的 ddev 实例。有examples already来设置,这里就不重复了。
上述任务需要添加以下内容:
- 硒容器:容器运行硒。我使用的是 chrome 独立版本。将以下内容添加到您的 .ddev 文件夹中:
文件: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 容器 需要 了解 Web 容器 运行 drupal 实例以连接到它,但由于它是 Web 容器的依赖项,因此您不能使用 'links'。您必须使用别名方法,使用默认网络。
- compose override:一个文件将 Web 容器的默认设置覆盖到 link selenium 容器。
文件:docker-compose.override.yml
version: '3.6'
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_url
和 wd_host
条目对于实现此功能至关重要。
有关最后一个的更多信息,请参阅 Behat Drupal Extension docs 中的第 5 步:
Configure your testing environment by creating a file called behat.yml with the following. Be sure that you point the base_url at the web site YOU intend to test. Do not include a trailing slash:
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: ~
问题:获取在 ddev 容器内工作的基于 Behat Drupal Extension 的测试。这包括向现有配置添加单独的硒容器,能够 运行 Behat 测试,以及能够引用 web
主机容器。
先决条件:有一个运行 Drupal 的 ddev 实例。有examples already来设置,这里就不重复了。
上述任务需要添加以下内容:
- 硒容器:容器运行硒。我使用的是 chrome 独立版本。将以下内容添加到您的 .ddev 文件夹中:
文件: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 容器 需要 了解 Web 容器 运行 drupal 实例以连接到它,但由于它是 Web 容器的依赖项,因此您不能使用 'links'。您必须使用别名方法,使用默认网络。
- compose override:一个文件将 Web 容器的默认设置覆盖到 link selenium 容器。
文件:docker-compose.override.yml
version: '3.6'
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_url
和 wd_host
条目对于实现此功能至关重要。
有关最后一个的更多信息,请参阅 Behat Drupal Extension docs 中的第 5 步:
Configure your testing environment by creating a file called behat.yml with the following. Be sure that you point the base_url at the web site YOU intend to test. Do not include a trailing slash:
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: ~