我使用带有Codeception的Laravel 5.6进行验收测试,并且这种情况一直在发生:
1) TestCest: Home
Test tests/acceptance/TestCest.php:home
[GuzzleHttp\Exception\ConnectException] cURL error 7: Failed to connect to 127.0.0.1 port 8888: Connection refused (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)
Scenario Steps:
1. $I->amOnPage("/") at tests/acceptance/TestCest.php:6
很少似乎是随机工作,但大多数情况下它都是错误的。我花了一段时间在这上面,并希望永久修复。
一些相关文件:
.travis.yml
language: php
sudo: false
dist: trusty
cache: false
php:
- 7.2.3
services:
- mysql
before_install:
- mysql -e 'CREATE DATABASE IF NOT EXISTS test;'
install:
- cp .env.travis .env
- composer self-update
- composer install --no-interaction
- npm i -g npm
- npm install
before_script:
- php artisan key:generate
- php artisan migrate --no-interaction -vvv
- php artisan serve --env=testing --no-ansi --no-interaction --port=8888 --host=localhost &
script:
- vendor/bin/codecept run acceptance --no-ansi --no-interaction
.env.travis
APP_NAME=Laravel
APP_ENV=testing
APP_KEY=base64:dHJA2G0xXnUEP82ota/J4WBnXSYGP9VHRBl6fvclfjk=
APP_DEBUG=true
APP_URL=http://localhost:8888
LOG_CHANNEL=stack
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=test
DB_USERNAME=root
DB_PASSWORD=
BROADCAST_DRIVER=log
CACHE_DRIVER=file
SESSION_DRIVER=file
SESSION_LIFETIME=120
QUEUE_DRIVER=sync
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
答案 0 :(得分:0)
OP解决方案。
我替换了
php artisan serve --env=testing --no-ansi --no-interaction --port=8888 --host=localhost &
与
php -S 0.0.0.0:8888 -t ./public/ &
答案 1 :(得分:0)
当我使用CURL时,我对Vanilla(Core)PHP也有类似的问题。我的代码正在连接到本地网络中的另一台计算机。
CURL代码正确,并且没有问题。
经常出现此错误: 无法连接到127.0.0.1端口8888:连接被拒绝
解决此问题的方法是在计算机上的Apache上打开端口 8888 。由于我使用的是 Ubuntu 16.04 ,因此我在文件中执行了此操作:
/etc/apache2/ports.conf
在这里,我已将以下行添加到端口文件:
Listen 8888
此后,我重新启动了Apache:
sudo service apache2 restart