lexsoft/drupal-behat-contexts

简单的上下文,用于通过一些步骤帮助调试测试。

安装: 8

依赖项: 0

建议者: 0

安全: 0

星级: 0

关注者: 1

分支: 19

类型:测试工具

1.0 2018-07-05 16:04 UTC

This package is auto-updated.

Last update: 2024-09-08 07:10:28 UTC


README

我们在Drupal网站上使用Behat 3.x测试的上下文。

如何使用?

  • 该工具可以使用Composer轻松安装。
  • behat.yml 文件中定义格式化器
  • behat.yml 文件中修改设置

安装

先决条件

此扩展需要

  • PHP 5.3.x 或更高版本
  • Behat 3.x 或更高版本

通过 composer

保持测试套件更新的最简单方法是使用 Composer

使用 composer 安装

$ composer require --dev lexsoft/drupal-behat-contexts

使用 composer.json 安装

将 DrupalBehatContexts 添加到 composer.json 中的依赖项列表中。

{
    "require": {
        "behat/behat": "3.*@stable",
        "drupal/drupal-extension": "3.*@stable",
        "lexsoft/drupal-behat-contexts": "1.*",
    },
    "minimum-stability": "dev",
    "config": {
        "bin-dir": "bin/"
    }
}

然后只需使用 composer 安装即可

$ composer install --dev --prefer-dist

您可以在其 官方网页 上了解更多关于Composer的信息。

配置

每个上下文都可以有自己的配置,请参阅每个上下文部分。

上下文

DebugContext

简单的上下文,通过一些步骤帮助调试测试。此外,它挂钩到步骤后的事件,以添加在失败的步骤上生成错误报告的步骤。

此报告包括

  • 包含HTML页面内容的文件。
  • 包含当前URL和错误异常转储的文件。
  • 如果可用,包含当前页面状态的文件。

步骤

  • 然后捕获宽度为 :width 的整个页面

    将当前页面的截图保存到具有给定宽度的文件中。

  • 然后捕获宽度为 :width 的整个页面,以配置的目录(screenshots_path)中的名称 :filename

    将当前页面的截图保存到具有给定宽度的指定文件名中,配置的目录(screenshots_path)。

  • 然后捕获宽度为 :width 的整个页面到 :path

    将当前页面的截图保存到给定路径中的文件。如果路径是相对的,则使用 screenshots_path 配置值作为根。

  • 然后捕获宽度为 :width 的整个页面到 :path,以 :filename 为名

    将当前页面的截图保存到给定路径中的文件,以给定文件名为名。如果路径是相对的,则使用 screenshots_path 配置值作为根。

  • 然后保存最后一个响应

    将页面内容保存到文件中。

  • 然后保存最后一个响应到 :path

    将页面内容保存到给定路径中的文件。

  • 然后保存最后一个响应到 :path

    暂停测试指定数量的秒。当调试具有时间问题的测试时很有用。不要在实际测试中使用此步骤。

配置

将 DebugContext 添加到您的套件中。

以下是一个示例,其中引导目录位于 DRUPALROOT/sites/all/tests/behat/bootstrap。

default:
  autoload:
    '': %paths.base%\tests\features\bootstrap # This works with windows for linux change the path
  suites:
    default:
      paths:
        - %paths.base%\tests\features # This works with windows for linux change the path
      contexts:
        - Drupal\DrupalExtension\Context\DrupalContext
        - Drupal\DrupalExtension\Context\DrushContext
        - Drupal\DrupalExtension\Context\MessageContext
        - Drupal\DrupalExtension\Context\MinkContext
        - Drupal\DrupalExtension\Context\MarkupContext
        - lexsoft\DrupalBehatContexts\Context\UIContext
        - lexsoft\DrupalBehatContexts\Context\DrupalOrganicGroupsExtendedContext
        - lexsoft\DrupalBehatContexts\Context\DrupalExtendedContext
        - lexsoft\DrupalBehatContexts\Context\BrowserSizeContext:
            parameters:
        - lexsoft\DrupalBehatContexts\Context\DebugContext:
            parameters:
              'report_on_error': true
              'error_reporting_path': "%paths.base%\\tests\\errors\\reports\\" # This works with windows for linux change the path
              'screenshots_path': "%paths.base%\\tests\\errors\\screenshots\\" # This works with windows for linux change the path
              'page_contents_path': "%paths.base%\\tests\\errors\\pages\\" # This works with windows for linux change the path

参数

  • report_on_error: 如果 true,则在失败的步骤上生成错误报告。
  • error_reporting_path: 保存报告的路径。
  • screenshots_path: 保存截图的路径。报告截图保存在报告路径中,这里仅保存 捕获整个页面 步骤的截图。
  • page_contents_path: 保存页面内容的路径。报告页面内容保存在报告路径中,这里仅保存 保存页面内容 步骤的页面内容。

BrowserSizeContext

此上下文允许将浏览器调整到给定的一组大小。它应该与Selenium等真实浏览器驱动程序一起使用。其主要目的是简化依赖于窗口大小的测试。

请注意,浏览器窗口大小可能在不同场景或功能之间不会改变,即使在不同的测试执行中也是如此。例如,如果您使用 PhantomJS,所有测试执行都将使用相同的浏览器(假设 PhantomJS 没有终止并重新执行)。因此,如果一个测试更改了窗口大小,带有 @javadcript 标签的下一个测试将使用该窗口大小执行。

步骤

  • 假设浏览器窗口大小为::size 大小

    将浏览器窗口大小更改到指定的大小。大小必须是默认大小之一或配置中声明的大小之一。

配置

将 BrowserSizeContext 添加到您的测试套件中。

要声明大小并使其可用,请使用上下文参数。

- lexsoft\DrupalBehatContexts\BrowserSizeContext:
    parameters:
      sizes:
        Default:
          width: 1200
          height: 800
        Full:
          width: 1200
          height: 800
        My custom size:
          width: 1440
          height: 960

上下文有一些默认值。如果定义了一个与默认大小同名的尺寸,则维度将被覆盖。如果定义了一个全新的尺寸,则简单地将其添加到可用尺寸中。

DrupalExtendedContext

此上下文通过与 Drupal 及其模块相关的步骤扩展 DrupalRawContext。

步骤

  • 然后表单 :type 元素 :label 应该是必填项

    检查表单元素是否必填。不支持文件输入类型。

  • 然后表单 :type 元素 :label 不应该是必填项

    检查表单元素是否必填。不支持文件输入类型。

  • 给定我运行 elysia cron

    运行 Elysia cron。

配置

无需配置。

IUContext

此上下文提供某些 UI 元素的步骤。

步骤

  • 给定我从 :select chosen.js 选择框中选择 :option

    从 Chosen 选择小部件中选择一个选项。仅适用于单选,在启用多选或标签样式的情况下不适用。

    请参阅 https://harvesthq.github.io/chosen/

配置

无需配置。