lexsoft / drupal-behat-contexts
简单的上下文,用于通过一些步骤帮助调试测试。
Requires
- php: >=5.3.0
- behat/behat: ~3.0
- drupal/drupal-extension: ~3.4.1
- twig/twig: ~1.0
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 选择小部件中选择一个选项。仅适用于单选,在启用多选或标签样式的情况下不适用。
配置
无需配置。