2016-07-02 2 views
1

У меня есть Macbook с OS El Capitan. В моем новом приложении Laravel (созданного $ composer create-project laravel/laravel my_app), я типа:Behat test «Тогда я должен увидеть Laravel 5» не работает в ларавельном приложении

$ php artisan serve 

И в браузере (Safari или Chrome) на локальном хосте: 8000 Я успешно видеть черный текст «Laravel 5» на веб-странице.

У меня есть файл hometest.feature в особенности /, который выглядит следующим образом:

Feature: 
    In order to prove that Behat works as intended 
    We want to test the home page for a phrase 
    Scenario: Root Test 
    When I am on the homepage 
    Then I should see "Laravel 5" 

У меня есть /features/bootstrap/FeaturesContext.php файл, который выглядит следующим образом:

<?php 

use Behat\Behat\Context\Context; 
use Behat\Behat\Context\SnippetAcceptingContext; 
use Behat\Gherkin\Node\PyStringNode; 
use Behat\Gherkin\Node\TableNode; 

/** 
* Defines application features from the specific context. 
*/ 
class FeatureContext extends Behat\MinkExtension\Context\MinkContext implements Context, SnippetAcceptingContext 
{ 
    /** 
    * Initializes context. 
    * 
    * Every scenario gets its own context instance. 
    * You can also pass arbitrary arguments to the 
    * context constructor through behat.yml. 
    */ 
    public function __construct() 
    { 
    } 
} 

У меня есть файл behat.yml, который выглядит следующим образом:

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

Когда я запускаю (localhost running or not running = не отличается результат):

$ vendor/bin/behat 

Выход консоли:

Feature: 
    In order to prove that Behat works as intended 
    We want to test the home page for a phrase 

    Scenario: Root Test    # features/hometest.feature:5 
    When I am on the homepage  # FeatureContext::iAmOnHomepage() 
    Then I should see "Laravel 5" # FeatureContext::assertPageContainsText() 
     The text "Laravel 5" was not found anywhere in the text of the current page. (Behat\Mink\Exception\ResponseTextException) 

--- Failed scenarios: 

    features/hometest.feature:5 

1 scenario (1 failed) 
2 steps (1 passed, 1 failed) 
0m0.12s (20.26Mb) 

Почему мой простой «я должен видеть тест 'Laravel 5' потерпеть неудачу? Если localhost должен быть запущен, как мне запустить мой тест одновременно? Когда я запускаю локальный хост, ничего, что я набираю в терминале, больше не получает ответ.

Моя структура каталогов применимых папок:

app/ 
bootstrap/ 
... 
features/ 
    bootstrap/ 
     FeatureContext.php 
    hometest.feature 
... 
.env.behat 
behat.yml 
composer.json 
... 
etc. 

Спасибо!

+0

Почему вы не запускаете тест через другое окно терминала? –

+0

@RavishaHesh, к сожалению, он выводит то же сообщение в новом окне, что я запускаю тест в –

+0

К сожалению, я не знаком с этим пакетом Behat. Но в laravel phpunit есть переменная для установки базового url, а также не работающая с абсолютным путем localhost (http: // localhost/Blog/public). Таким образом, может быть с виртуальным хостом –

ответ

8

И наконец! Я обнаружил через свои серверные журналы (storage/logs/laravel.log), что страница, содержащая текст, содержала текст «Упс, похоже, что что-то пошло не так». (очевидно, неправильная страница). Ошибка была «development.ERROR: exception« RuntimeException »с сообщением« Не найден поддерживаемый encrypter. Шифр ​​и/или длина ключа недопустимы ». Для этого есть около 50 вопросов и ответов на StackOverflow, а нет они работали. После нескольких дней исследований я нашел свое решение. Это может быть комбинация предыдущих изменений, которые я сделал, или успех может быть полностью вызван этой командой. В любом случае, попробуйте:

php artisan config:cache 

Фу!

+0

Ооооооооооооооооооооооооооооооооооооо то, я помог. я начал ненавидеть поведение без причины. Еще раз Спасибо миллиону, что вы герой – mwangaben

+0

У меня была такая же проблема, и теперь исправлено спасибо вам :) –

0

Я решил эту проблему, добавив APP_KEY в файл env.behat