mvlabs/zf2behat-extension

Behat的Zend Framework 2扩展

安装次数: 6,017

依赖项: 1

建议者: 0

安全: 0

星标: 21

关注者: 9

分支: 13

开放问题: 1

类型:behat-extension

0.5 2013-07-16 18:58 UTC

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.在模块内初始化。否则,你可以在现有的测试套件中以两种方式使用此扩展

  1. 如果你使用的是php版本5.4+,你可以使用MvLabs\Zf2BehatExtension\Context\Zf2Dictionary trait提供的基本ZendFramework 2功能。但这种功能只能在单个上下文中使用。
  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.配置参数

配置文件支持的选项有

  1. 模块 - 为特定配置文件设置要运行的模块(当前每个配置文件只支持一个模块)
  2. 配置 - 设置自定义配置文件。如果未指定,将加载 config/application.config.php