yoanm / behat-utils-extension
该软件包已被废弃且不再维护。未建议替代软件包。
Behat3 的一组实用工具
0.7.0
2017-01-22 08:49 UTC
Requires
- php: >=5.5
- behat/behat: ~3.0
- monolog/monolog: ~1.0
Requires (Dev)
Suggests
- yoanm/behat3-symfony-extension: Symfony integration for behat v3.0
README
BehatUtilsExtension 为 Behat 3.0+ 提供了一组实用工具。
安装
composer require --dev yoanm/behat-utils-extension
如何使用
BehatUtilsExtension 需要 behat/behat 和 monolog/monolog
配置
在您的 behat 配置文件中添加以下内容(通常是 behat.yml
)
default: extensions: Yoanm\BehatUtilsExtension: ~
包含内容
日志记录器
实现此接口,您的上下文将注入日志记录器
示例
<?php namespace Functional\Yoanm\BehatUtilsExtension\Context; use Behat\Behat\Context\Context; use Psr\Log\LoggerInterface; use Yoanm\BehatUtilsExtension\Context\LoggerAwareInterface; class FeatureContext implements Context, LoggerAwareInterface { /** @var LoggerInterface */ private $logger; /** * {@inheritdoc} */ public function setBehatLogger(LoggerInterface $logger) { $this->logger = $logger; } /** * @When my step */ public function myStep() { $this->logger->info('Executing my step'); } }
Behat 事件订阅
见 BehatContextSubscriberInterface
启用初始化器并实现 BehatContextSubscriberInterface
,然后您的上下文将被 Behat 分发器传递以接收 Behat 事件
启用上下文初始化器
default: extensions: Yoanm\BehatUtilsExtension: event_subscriber: true
示例
<?php namespace Functional\Yoanm\BehatUtilsExtension\Context; use Behat\Behat\Context\Context; use Behat\Behat\EventDispatcher\Event\ExampleTested; use Behat\Behat\EventDispatcher\Event\GherkinNodeTested; use Behat\Behat\EventDispatcher\Event\ScenarioTested; use Yoanm\BehatUtilsExtension\Context\BehatContextSubscriberInterface; class FeatureContext implements Context, BehatContextSubscriberInterface { /** * @param GherkinNodeTested $event */ public function reset(GherkinNodeTested $event) { /** * Reset here your data before a scenario or example is started */ } /** * {@inheritdoc} */ public static function getSubscribedEvents() { return [ ScenarioTested::BEFORE => ['reset'], ExampleTested::BEFORE => ['reset'], //Or // ScenarioTested::BEFORE => ['reset', ListenerPriority::HIGH_PRIORITY], ]; } }
步骤日志记录器
如果启用,将记录每个 Behat 功能/背景/大纲/示例/步骤的开始和结束。如果您在功能中遇到难以理解的错误,这有助于理解幕后发生了什么。
可以与 日志记录器 结合使用,以便轻松识别上下文自定义步骤中的问题。
启用步骤监听器
default: extensions: Yoanm\BehatUtilsExtension: step_logger: true
输出示例
以下内容将附加到配置的日志文件中(见下面的 默认配置参考)。
behatUtils.DEBUG: [BehatStepLoggerSubscriber] [FEATURE][IN] {"title":"FEATURE TITLE","file":"FEATURE FILE PATH"} []
behatUtils.DEBUG: [BehatStepLoggerSubscriber] [FEATURE][OUT] {"title":"FEATURE TITLE","file":"FEATURE FILE PATH"} []
behatUtils.DEBUG: [BehatStepLoggerSubscriber] [BACKGROUND][IN] {"title":"BACKGROUND TITLE","line":"BACKGROUND START LINE"} []
behatUtils.DEBUG: [BehatStepLoggerSubscriber] [BACKGROUND][OUT] {"title":"BACKGROUND TITLE","line":"BACKGROUND END LINE"} []
behatUtils.DEBUG: [BehatStepLoggerSubscriber] [OUTLINE][IN] {"title":"OUTLINE TITLE","line": "OUTLINE START LINE"} []
behatUtils.DEBUG: [BehatStepLoggerSubscriber] [OUTLINE][OUT] {"title":"OUTLINE TITLE","line": "OUTLINE END LINE"} []
behatUtils.DEBUG: [BehatStepLoggerSubscriber] [EXAMPLE][IN] {"tokens":{"EXAMPLE_TOKENS_NAME":"EXAMPLE_TOKENS_VALUE"},"title":"| EXAMPLE_TOKENS_VALUE|","line":"EXAMPLE START LINE"} []
behatUtils.DEBUG: [BehatStepLoggerSubscriber] [EXAMPLE][OUT] {"tokens":{"EXAMPLE_TOKENS_NAME":"EXAMPLE_TOKENS_VALUE"},"title":"| EXAMPLE_TOKENS_VALUE|","line":"EXAMPLE END LINE"} []
behatUtils.DEBUG: [BehatStepLoggerSubscriber] [STEP][IN] {"text":"STEP TEXT","line":"STEP LINE"} []
behatUtils.DEBUG: [BehatStepLoggerSubscriber] [STEP][OUT] {"text":"STEP TEXT","line":"STEP LINE"} []
配置参考
default: extensions: Yoanm\BehatUtilsExtension: logger: path: behat.log level: INFO event_subscriber: false step_logger: false
测试
本存储库遵循一个自定义测试策略
贡献
参见贡献指南