Lravel 5, Behat, Mink: параметр base_url не читается из behat.yml

я использую Ларавел 5, Behat а также Удлинитель норки для Laravel. composer.json штука для установки компонентов это:

"require-dev": {
"phpunit/phpunit": "~4.0",
"behat/behat": "^3.0",
"behat/mink": "^1.6",
"behat/mink-extension": "^2.0",
"laracasts/behat-laravel-extension": "^1.0"}

Я установил базовый URL в behat.yml, все содержимое файла:

default:
extensions:
Laracasts\Behat:
# env_path: .env.behat
Behat\MinkExtension:
base_url: http://localhost/leaveTracker/public
default_session: laravel
laravel: ~

Обратите внимание, что я установил base_url здесь как:

            base_url: http://localhost/leaveTracker/public

Также я написал этот пример функции:

Feature: Viewing the list of employees
In order to operate the employees' data
As a user
I need to see the list of employees

Scenario: I have the option to add employee
Given I am on page "/employee"Then the current URL should be "http://localhost/leaveTracker/public/employee"

И соответствующая часть для FeatureContext.php является:

/**
* @Then the current URL should be :arg1
*/
public function theCurrentUrlShouldBe($arg1)
{
PHPUnit::fail($this->getSession()->getCurrentUrl());
}

Здесь я получаю следующую ошибку, которая является нормальной для меня:

Scenario: I have the option to add employee
Given I am on page "/employee"Then the current URL should be "http://localhost/leaveTracker/public/employee"Failed asserting that two strings are equal.
--- Expected
+++ Actual
@@ @@
-'http://localhost/employee'
+'http://localhost/leaveTracker/public/employee'

Итак, теперь мой вопрос: Почему base_url не читается из behat.yml файл?

Замечания: Я также пытался установить base_url: https://test.com, но все же требуется http://localhost/employee

3

Решение

Я столкнулся с такой же проблемой при обновлении с Behat 2.x до Behat 3.x

behat.yml: [определение base_url]

extensions:
Behat\MinkExtension:
base_url: 'http://localhost/index.php'

В ваших классах Context, которые расширяются из вызова RawMinkContext:

$this->visitPath($url);

Эта функция объединяет $config['base_url'] с $url, призвание $this->getSession()->visit($url) просматривает равнину $url,

4

Другие решения

Вместо:

Given I am on page "/employee"

Попробуйте с:

Given I am on "/employee"

Я не знаю о Laravel, но вот как мы это делаем в Symfony:

default:
extensions:
Behat\MinkExtension\Extension:
base_url: 'http://localhost/myproject/web/app_test.php/'

Когда вы вызываете команду ниже, вы должны ожидать увидеть базовый URL выше, что происходит в вашем случае?

class FeatureContext extends MinkContext
{

// In one of you methods run this
echo $this->getSession()->getCurrentUrl();

}
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector