我有一个项目,我已经在Behat中编写了功能/场景,该项目现已完成。我必须在方便使用symfony的网站上测试电子邮件功能。但是,我找不到任何可以帮助我从Behat中配置symfony的教程。大多数站点都以Symfony的形式提供Behat,而并非以其他方式提供。
这是我发现的文章,其中包含有关配置的一些信息,但并不完整。 http://extensions.behat.org/symfony2
本文http://docs.behat.org/cookbook/using_the_profiler_with_minkbundle.html提供了用于检查电子邮件功能的代码,但是没有说明如何在Behat中配置symfony。我安装了symfony扩展程序。
这是我的composer.json内容:
{
"require": {
"behat/behat": "*",
"behat/mink": "1.4.0",
"behat/mink-goutte-driver": "*",
"behat/mink-selenium-driver": "*",
"behat/mink-selenium2-driver": "*",
"behat/mink-sahi-driver": "*",
"behat/mink-zombie-driver": "*",
"drupal/drupal-extension": "*",
"symfony/process": "*",
"behat/symfony2-extension": "*",
"symfony/form": "*",
"symfony/validator": "*",
"behat/mink-extension": "*",
"symfony/http-kernel": "*",
"fabpot/goutte": "dev-master#5f7fd00"
},
"minimum-stability": "dev",
"config": {
"bin-dir": "bin/"
}
}
有人可以在这里指导我吗?
最佳答案
在Symfony 2(.2)配置中,您必须将behat.yml文件放在根文件夹中,即composer.json所在的文件夹中。
app/
bin/
src/
vendor/
web/
behat.yml
composer.json
这是一个有效的behat.yml的示例:
default:
# ...
extensions:
Behat\Symfony2Extension\Extension: ~
Behat\MinkExtension\Extension:
goutte: ~
selenium2: ~
现在,您必须启动
behat init command
并指定所需的捆绑包:php bin/behat @AcmeDemoBundle --init
上面的命令将创建一个
Features
文件夹,其中包含一个FeatureContext
类。将此类的方法放在此类中。下面是官方的hello world示例:
/**
* @Given /^I am in a directory "([^"]*)"$/
*/
public function iAmInADirectory($dir)
{
if (!file_exists($dir))
mkdir($dir);
chdir($dir);
}
/**
* @Given /^I have a file named "([^"]*)"$/
*/
public function iHaveAFileNamed($file)
{
touch($file);
}
/**
* @When /^I run "([^"]*)"$/
*/
public function iRun($command)
{
exec($command, $output);
$this->output = trim(implode("\n", $output));
}
/**
* @Then /^I should get:$/
*/
public function iShouldGet(PyStringNode $string)
{
if ((string) $string !== $this->output)
throw new \Exception("Actual output is:\n" . $this->output);
}
现在,您必须在
ls.feature
文件夹中创建功能文件(来自同一示例的Features
):Feature: ls
In order to see the directory structure
As a UNIX user
I need to be able to list the current directory's contents
Scenario: List 2 files in a directory
Given I am in a directory "test"
And I have a file named "foo"
And I have a file named "bar"
When I run "ls"
Then I should get:
"""
bar
foo
"""
因此,您的
Features
文件夹将类似于以下结构:Acme\DemoBundle\Features
|- Context /
|- FeatureContext.php
ls.feature
最后,启动behat并享受!
php bin/behat @AcmeDemoBundle
关于php - 在Behat中配置Symfony,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12725017/