elife/isolated-drupal-behat-extension

此软件包已被弃用,不再维护。作者建议使用elife/isolated-drupal-behat-extension软件包。

用于独立测试Drupal网站的Behat扩展

0.2.5 2016-06-29 07:17 UTC

This package is not auto-updated.

Last update: 2019-02-20 21:15:56 UTC


README

Build Status

扩展功能是什么?

Behat的Drupal扩展允许您使用Behat编写场景,以描述和测试您的Drupal 7站点的功能。

它是灵活的,您能够进行诸如测试远程站点等操作。然而,由于这个原因,它并不在每个场景中独立运行,这意味着它们可能会相互影响,以及现有的站点。当使用Behat纯测试您的代码库时,这是危险的,因为场景可能会通过或失败,而实际上应该相反。

此扩展通过在每个新安装的站点上运行每个场景来解决此问题,这允许您有信心地测试您的网站。

这不是很慢吗?

是的。为了帮助解决这个问题,实际上该扩展会复制第一个安装,然后将其复制回来,而不是重新安装网站。这意味着第一个场景可能需要一段时间才能运行,但与其他场景相比,您几乎不会注意到任何差异。

这不会破坏我正在工作的网站吗?

不会。它(误)使用Drupal的多站点功能,因此不会触及您的网站。例如,如果您的网站可在http://localhost/访问,它会将一个站点安装到sites/localhost,并在该站点上测试(Drupal将代替您的正常站点提供服务),然后当套件完成后将其删除。

它是如何知道要启用哪些模块的?

它假定您的安装配置文件将设置您的网站。话虽如此,您可以在功能中添加步骤,根据需要启用模块等。

要求

启用扩展

  1. 将扩展添加到依赖项(composer require elife/isolated-drupal-behat-extension)。

  2. 将扩展添加到Behat配置

    default:
      extensions:
        eLife\IsolatedDrupalBehatExtension:
          db_url: 'mysql://user:password@localhost/db_name'

    下面是配置选项。

  3. 像往常一样运行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

这将允许您与/扩展扩展程序。