drupaltest/behat-one-time-login

通过Drupal一次性登录机制验证用户。

1.0.3 2023-12-14 11:07 UTC

This package is auto-updated.

Last update: 2024-09-14 12:54:44 UTC


README

在Behat场景中通过Drupal一次性登录机制验证用户。

此功能适用于不使用默认Drupal登录表单,而是依赖双因素认证、单点登录或其他非标准认证方法的项目。

安装

将库添加到您的开发依赖中

$ composer require --dev drupaltest/behat-one-time-login

将以下内容添加到您的 behat.yml 配置文件中

default:
  extensions:
    FriendsOfBehat\ServiceContainerExtension:
      imports:
        - "./vendor/drupaltest/behat-one-time-login/behat.services.yml"

使用方法

此库透明地替换了标准登录方法,所以在大多数情况下,可以直接添加并使用,无需修改现有测试场景。

请注意,在标准Drupal登录流程中,用户登录后最终会出现在主页上,而使用此库则会在用户个人资料页面上。我们没有包含重定向到主页的操作,因为在行为驱动开发中,测试应该便于业务利益相关者阅读。非技术用户可能不知道Drupal在登录后会内部重定向到主页。这意味着任何在主页上执行操作的测试都应该包含一个步骤,提示用户打开主页。例如

Given I am logged in as an administrator
And I am on the homepage

开发

本地运行测试

  • 运行 composer install 以获取代码库
    $ composer install
  • 创建定制的 behat.yml
    $ cp behat.yml.dist behat.yml
  • 根据您的需求调整 behat.yml 中的值。您可以使用默认的Behat配置并在使用PHP内置的web服务器进行测试
    $ ./vendor/bin/drush runserver 8888
    或者使用您本地的web服务器(如果有的话)。在这种情况下,您需要在 behat.yml 中设置适当的配置。
  • 安装Drupal
    $ ./vendor/bin/drush site-install
  • 运行测试
$ ./vendor/bin/behat

致谢

此功能基于Moshe Weitzman的weitzman/logintrait