elife / isolated-drupal-behat-extension
Requires
- php: >=5.4
- behat/behat: ^3.0.6
- behat/mink-extension: ~2.0
- drupal/drupal-driver: ^1.0.1
- drupal/drupal-extension: ~3.0
- symfony/dependency-injection: ~2.5|~3.0
- symfony/event-dispatcher: ~2.3|~3.0
- symfony/filesystem: ~2.3|~3.0
- symfony/process: ~2.3|~3.0
Requires (Dev)
- behat/mink-goutte-driver: ~1.0
- drush/drush: ~7.0|~8.0
- mikey179/vfsstream: ~1.2
- phpunit/phpunit: ~4.8|~5.0
This package is not auto-updated.
Last update: 2019-02-20 21:15:56 UTC
README
扩展功能是什么?
Behat的Drupal扩展允许您使用Behat编写场景,以描述和测试您的Drupal 7站点的功能。
它是灵活的,您能够进行诸如测试远程站点等操作。然而,由于这个原因,它并不在每个场景中独立运行,这意味着它们可能会相互影响,以及现有的站点。当使用Behat纯测试您的代码库时,这是危险的,因为场景可能会通过或失败,而实际上应该相反。
此扩展通过在每个新安装的站点上运行每个场景来解决此问题,这允许您有信心地测试您的网站。
这不是很慢吗?
是的。为了帮助解决这个问题,实际上该扩展会复制第一个安装,然后将其复制回来,而不是重新安装网站。这意味着第一个场景可能需要一段时间才能运行,但与其他场景相比,您几乎不会注意到任何差异。
这不会破坏我正在工作的网站吗?
不会。它(误)使用Drupal的多站点功能,因此不会触及您的网站。例如,如果您的网站可在http://localhost/访问,它会将一个站点安装到sites/localhost
,并在该站点上测试(Drupal将代替您的正常站点提供服务),然后当套件完成后将其删除。
它是如何知道要启用哪些模块的?
它假定您的安装配置文件将设置您的网站。话虽如此,您可以在功能中添加步骤,根据需要启用模块等。
要求
- Behat 3.x
- Behat的Drupal扩展 3.x
- 在本地运行您站点的Web服务器。
启用扩展
-
将扩展添加到依赖项(
composer require elife/isolated-drupal-behat-extension
)。 -
将扩展添加到Behat配置
default: extensions: eLife\IsolatedDrupalBehatExtension: db_url: 'mysql://user:password@localhost/db_name'
下面是配置选项。
-
像往常一样运行Behat。
配置
该扩展将使用Behat的Drupal扩展的配置选项,以知道您的网站位置、服务URL等信息。
其自身的选项包括:
db_url
这是必需的。这是一个连接字符串,用于将独立站点安装到数据库中。
它不必与您的生产环境相同类型,因此您可以使用SQLite而不是MySQL。(但请注意,如果您在任何时候都没有使用Drupal的数据库抽象层,您将需要使用相同的数据库类型。)
示例
mysql://user:password@localhost/db_name
sqlite:/db_name.sqlite
profile
这是要使用的安装配置文件名称。默认值是standard
。
settings_file
这是要使用的settings.php
文件的路径。默认为空。
请注意,以下值将被覆盖以确保隔离
$base_url
$databases
$drupal_hash_salt
$conf["file_public_path"]
$conf["file_private_path"]
$conf["file_temporary_path"]
clean_up
默认情况下,扩展程序将在套件完成后删除它创建的站点。如果您连续几次运行套件,这意味着它将在每次运行时安装一个站点,这可能会相当慢。将此值设置为false
(默认为true
)将导致它不清理文件系统,因此第二次(及以后)运行将使用第一次运行安装的站点的副本。这将更快,但开发人员需要确保没有对安装过程进行更改(如果需要,主站点需要手动删除)。
运行扩展程序的测试
$ composer install $ ./vendor/bin/phpunit $ ./vendor/bin/behat
扩展扩展程序
您可以为Behat编写自己的扩展程序并监听以下事件
elife_drupal.installing_site
elife_drupal.mirroring_path
elife_drupal.site_installed
elife_drupal.site_settings
这将允许您与/扩展扩展程序。