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