Behat 3.0具有文件夹/路径

时间:2015-01-12 15:41:46

标签: php laravel behat

我正在尝试设置Behat 3.0。我想改变我的功能所在的路径。

目前,我的behat.yml配置如下所示:

default:
    autoload:
        '': app/tests/acceptance

运行behat --init将在acceptance/FeatureContext.php目录中创建app/tests

但是,它会在项目的根目录中创建features文件夹。我希望将此features文件夹放在app/tests/acceptance文件夹中。

我该怎么做?

1 个答案:

答案 0 :(得分:11)

Behat 3支持suitesprofiles

您唯一需要做的就是将自定义路径添加到默认配置文件

default:
  autoload:
    '': %paths.base%/app/tests/acceptance
  suites:
    default:
      paths: [ %paths.base%/app/tests/acceptance/features ]

提示1

始终使用%paths.base%变量才能从其他目录运行Behat测试。

提示2

根据Behat的PSR-0自动加载机制在您实施更多上下文时可能会出现问题。

好的做法是使用作曲家的PSR-4自动加载机制来运行命名空间的Behat功能。

如上例所示设置Behat后,您需要删除bahat.yml中的自动加载部分,并将contexts添加到default个人资料中:

default:
  suites:
    default:
      paths: [ %paths.base%/app/tests/acceptance/features ]
      contexts: [ MyApp\Tests\Acceptance\FeatureContext ]

将自动加载配置添加到composer.json

{
    [...]
    "autoload-dev": {
        "psr-4": {
            "MyApp\\Tests\\Acceptance\\": "app/tests/acceptance"
        }
    }
    [...]
}

然后只需使用composer dump-autoload转储自动加载器。