chekote / behat-retry-extension
自动重试 Behat 中的 "Then" 步骤
Requires
- behat/behat: ~3.0
Requires (Dev)
This package is auto-updated.
Last update: 2024-09-19 16:33:35 UTC
README
Behat 重试扩展
自动旋转(重试)Behat 中的 "Then" 步骤
使用方法
- 将其添加到您的需求中(通常仅限开发环境使用)
composer require --dev chekote/behat-retry-extension
- 启用扩展
# behat.yml default: # ... extensions: Chekote\BehatRetryExtension: ~
- 可选配置扩展
# 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