chekote/behat-retry-extension

自动重试 Behat 中的 "Then" 步骤

安装次数: 115,261

依赖项: 0

建议者: 0

安全性: 0

星标: 11

关注者: 1

分支: 1

开放问题: 2

类型:behat-extension

v1.1.1 2019-03-01 13:05 UTC

README

Packagist Latest Stable Version Packagist Latest Unstable Version Packagist Total Downloads CircleCI Scrutinizer Code Quality StyleCI

Behat 重试扩展

自动旋转(重试)Behat 中的 "Then" 步骤

使用方法

  1. 将其添加到您的需求中(通常仅限开发环境使用)
composer require --dev chekote/behat-retry-extension
  1. 启用扩展
# behat.yml
default:
    # ...
    extensions:
        Chekote\BehatRetryExtension: ~
  1. 可选配置扩展
# behat.yml
default:
    # ...
    extensions:
        Chekote\BehatRetryExtension:
          timeout: 10
          interval: 999999999
          strictKeywords: true

配置选项

超时

类型:浮点数

默认值:5

超时设置是扩展在认为 "Then" 步骤失败之前应重试这些步骤的秒数。

间隔

类型:整数

默认值:100000000(0.1秒)

间隔是扩展在尝试之间等待的纳秒数。默认情况下,每秒尝试10次。更频繁地尝试重试可能会使测试更快通过,但这取决于您的环境。

频繁尝试断言可能会以某种方式对您的应用程序造成负载,从而使测试实际运行时间更长。您需要针对您的特定应用程序进行实验,以确定哪个设置最适合您。

严格关键词

类型:布尔值

默认值:true

启用时,严格关键词设置将仅允许使用正确的关键词调用步骤定义。例如,您不能通过使用 "Given I should see..." 或 "When I should see..." 来调用 "Then I should see..." 的步骤定义。请注意,当使用 "And" 或 "But" 时,扩展将理解上下文,并将这些视为与上一个关键词相同。例如,以下 "But" 将被视为扩展的 "Then":

Given I visit "/home"
Then I should see "Welcome"
But I should not see "Logout"

此设置默认为 true,强烈建议您不要禁用它。如果此功能被禁用,则开发人员可以使用 "Then" 来调用非 "Then" 步骤,导致扩展旋转 "Given" 或 "When"。同样有问题的是,禁用此功能将允许开发人员使用 "Given" 或 "When" 来调用 "Then",从而阻止扩展旋转 "Then" 步骤。

开发

先决条件

安装 Docker

您还想要确保 ./bin 在您的 $PATH 中,并且具有最高优先级。您可以通过将以下内容添加到您的 shell 配置文件中来实现:

export PATH=./bin:$PATH

为开发设置项目

克隆存储库

git clone git@github.com:Chekote/BehatRetryExtension.git
cd BehatRetryExtension

初始化项目

init_project

工具

项目包含位于 bin 文件夹中的一组命令行工具(例如 php 等)。您可以从机器上的任何位置运行这些命令,并且它们将像在您的计算机上本地安装的工具一样执行。

这些命令将启动临时 Docker 容器来运行您的命令。

这些命令行工具除了需要安装 Docker Toolbox 之外没有其他要求。

注意:如果您正在使用 zsh 终端,您需要取消设置 cdablevars 选项,否则您将无法执行任何与系统上的用户名匹配的二进制文件,例如 mysql。

.zshrc

# Options
unsetopt cdablevars