2016-07-20 12 views
0

私はlaravelアプリケーションでNginxのコンテナ内でbehatを実行しようとしています。
私のドッキングウィンドウ-compose.ymlLaravel - Nginx - Docker - Behatの組み合わせ

version: '2' 

services: 
    load_balancer: 
    image: tutum/haproxy 
    links: 
     - nginx 
    ports: 
     - "8888:80" 

    nginx: 
    image: andrewmclagan/nginx-hhvm 
    volumes: 
     - ./www:/var/www 
     - ./sites:/etc/nginx/sites-enabled 
    links: 
     - mysql:mysql 
     - redis:predis 
    networks: 
     - front-tier 
     - back-tier 
    environment: 
     - APP_ENV=local 
     - DB_DATABASE=homestead 
     - DB_PASSWORD=secret 
     - DB_HOST=mysql 

    artisan: 
    image: spiralout/dartisan 
    volumes: 
     - ./www:/var/www 
    links: 
     - mysql:mysql 
     - redis:predis 
    networks: 
     - front-tier 
     - back-tier 

    mysql: 
    image: spiralout/alpine-mariadb 
    ports: 
     - "3306:3306" 
    volumes: 
     - ./database:/var/lib/mysql 
    networks: 
     - back-tier 

    composer: 
    image: spiralout/dcomposer 
    volumes: 
     - ./www:/var/www 
    networks: 
     - back-tier 

    nodejs: 
    image: spiralout/dnodejs 
    volumes: 
     - ./www:/var/www 
    networks: 
     - back-tier 

    redis: 
    image: spiralout/alpine-redis 
    volumes: 
     - ./redis-data:/data 
    networks: 
     - back-tier 

volumes: 
    www: 
    sites: 
    redis-data: 

networks: 
    front-tier: 
    back-tier: 

私は後に何をすべきかです

docker-compose up -d 

、その後

docker exec -it <nginx_name> \bin\bash 

は、私はその後behat実行しよう

vendor/behat/behat/bin/behat 

私のテストでは、単にホームページを訪問して印刷しようとしています。
FeatureContext.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() 
    { 
    } 

    /** 
    * @Given that I am on the homepage 
    */ 
    public function thatIAmOnTheHomepage() 
    { 
     $this->iAmOnHomepage(); 
     $this->visit("https://localhost:80"); 
     $this->printLastresponse(); 
    } 

    /** 
    * @Given that name is :arg1 
    */ 
    public function thatNameIs($arg1) 
    { 
     $this->fillField('name', $arg1); 
    } 

    /** 
    * @Given that email is :arg1 
    */ 
    public function thatEmailIs($arg1) 
    { 
     $this->fillField('email', $arg1); 
    } 

    /** 
    * @When you try to register 
    */ 
    public function youTryToRegister() 
    { 
     $this->pressButton('registerButton'); 
    } 

    /** 
    * @Then you remain on the homepage 
    */ 
    public function youRemainOnTheHomepage() 
    { 
     assertUrlRegExp('http://localhost'); 
    } 
} 

の問題は、私がWebアプリケーションにアクセスすることができないということですが、私はnginxのホームページに
を取得し、第二に、私のアプリはちょうどの取得ページが見つかりませんそれを訪問しようとしています。
何かお手伝いしました。

+0

せずに私のために正しく働いていなかったいくつかの理由
composer create-project laravel/laravel new dev-develop は手動でWebアプリケーションにアクセスすることはできますか?確認する/エコー/ URLがOKであるかどうかを確認するために印刷してみてください。 MinkContextはすでにホームページに移動するスニペットを持っているはずです。そのメソッドをオーバーライドすることもできます。また、カスタムyml設定ファイルのbehat.ymlにbase_urlがあることを確認してください。 – lauda

答えて

0

ソリューションは、dev-developフラグを使用して新しいプロジェクトを作成することでした。ミンク-拡張フラグ