mvlabs / zf2behat-extension
Behat的Zend Framework 2扩展
Requires
- php: >=5.3.3
- behat/behat: =2.4@stable
Requires (Dev)
- behat/mink: ~1.4.3
- behat/mink-extension: ~1.0.1
- zendframework/zendframework: 2.2.*
This package is auto-updated.
Last update: 2024-09-21 02:03:34 UTC
README
mvlabs/zf2behat-extension
由Konstantin Kudryashov的Symfony2extension启发,为Zend Framework 2开发的Behat扩展。
Behat (http://behat.org/) 是一个用于行为驱动开发的PHP框架。此扩展允许你在Zend Framework 2项目中使用它。它初始化Behat,使你能够在ZF2中快速使用Gherking功能。
1.需求
此扩展通过composer安装,具有以下依赖项
"php":">=5.3.3",
"behat/behat":"=2.4@stable",
"zendframework/zendframework":">=2.2.0"
Composer会帮你安装这些依赖项(见下文)。
2.安装
为了安装此扩展,你只需在你的Zend Framework 2 composer.json中添加以下内容
"require": {
"mvlabs/zf2behat-extension" : "dev-master"
}
然后运行composer.phar install(或update)。在此阶段,你需要在应用程序根目录下创建一个名为behat.yml的文件,内容如下
default:
extensions:
MvLabs\Zf2Extension\Zf2Extension:
3.使用方法
如果你没有现有的测试套件,请继续进行4.在模块内初始化。否则,你可以在现有的测试套件中以两种方式使用此扩展
- 如果你使用的是php版本5.4+,你可以使用MvLabs\Zf2BehatExtension\Context\Zf2Dictionary trait提供的基本ZendFramework 2功能。但这种功能只能在单个上下文中使用。
- 你可以为每个上下文实现MvLabs\Zf2BehatExtension\Context\Zf2AwareContextInterface,从而避免在子上下文中调用父上下文。
两种方法都调用一个setZf2App(Application $zf2Application)方法,该方法需要在一个私有属性中设置Zend\Mvc\Application以在每次步骤中重复使用。
4.在模块内初始化
为了在Zend Framework 2模块内初始化你的功能套件,你需要执行
$ php bin\behat --init "<module name>"
例如,如果你想初始化骨架应用程序,你只需从应用程序根目录执行
vendor/bin/behat --init Application
命令执行后,它将在你的模块中创建一个名为Features的文件夹,并在Context子文件夹中创建一个扩展准备好的FeatureContext。你应该在控制台看到以下输出
+d module/<module name>/src/<module name>/Features - place your *.feature files here
+f module/<module name>/src/<module name>/Features/Context/FeatureContext.php - place your feature related code here
5.运行你的功能
现在你已经在模块源文件夹(module//src/)中有Features目录,你可以在Gherkin中创建你的第一个功能文件。请参阅官方behat文档(http://docs.behat.org/quick_intro.html#define-your-feature)以了解如何创建你的第一个功能文件。
在此阶段,你只需运行
vendor/bin/behat <module_name>
即可运行针对你的模块的功能。
6.功能配置文件
如果你经常运行特定的模块套件,可以在behat.yml文件中的配置文件内设置模块参数,如下面的示例所示
default:
extensions:
MvLabs\Zf2Extension\Zf2Extension:
module: <module_name>
然后你可以直接调用behat而不带任何参数
vendor/bin/behat
在配置文件中,你可以使用特定的Zend Framework配置文件config/application.config.php,如下所示
default:
extensions:
MvLabs\Zf2Extension\Zf2Extension:
module: <module_name>
config: <my_custom_config_file_path>
7.多个功能配置文件
你还可以使用多个配置文件,如下面的示例所示
default:
extensions:
MvLabs\Zf2Extension\Zf2Extension:
module: User
example:
extensions:
MvLabs\Zf2Extension\Zf2Extension:
module: Albums
设置这些配置文件后,你可以通过以下命令执行Albums模块套件
$ php bin\behat -p=example
8.特定功能执行
你可以通过指定文件名来运行特定功能
$ php bin\behat "<module folder/feature folder/feature file>"
9.应用级别功能套件
如果你不想使用以模块为中心的结构,可以在behat.yml文件中指定一个功能路径和上下文类,如下面的示例所示
default:
paths:
features: features
context:
class: ModuleDemo\Features\Context\CustomContext
使用此路径时,您只需记住在自动加载器中添加您的上下文类。
10.配置参数
配置文件支持的选项有
- 模块 - 为特定配置文件设置要运行的模块(当前每个配置文件只支持一个模块)
- 配置 - 设置自定义配置文件。如果未指定,将加载 config/application.config.php