gpt4 book ai didi

php - 在 Behat 中配置 Symfony

转载 作者:行者123 更新时间:2023-12-03 02:13:49 24 4
gpt4 key购买 nike

我有一个项目,我在 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 命令并指定所需的 bundle :

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);
}

现在您必须在 Features 文件夹中创建功能文件(同一示例中的 ls.feature):

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

最后,启动并享受吧!

php bin/behat @AcmeDemoBundle

关于php - 在 Behat 中配置 Symfony,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12725017/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com