Laravel Phpunit 和 Dusk with CircleCI
Laravel Phpunit and Dusk with CircleCI
有没有人能得到 Laravel Dusk working on CircleCI.
我可以让我的构建工作并使用 PHPUnit 进行测试,但它在 Laravel Dusk 时失败了。
我有一个安装了 Dusk 的基础 Laravel 安装。当我到达 php artisan dusk
命令时,出现以下错误。
错误
1) Tests\Browser\ExampleTest::testBasicExample
Did not see expected text [Laravel] within element [body].
Failed asserting that false is true.
所以它正在启动 chrome 浏览器,但没有访问该站点。
我试过 运行 Dusk 的 chromedriver-linux、circleci 的 chromedriver,没有使用 php serve 和其他各种调整。到目前为止,我还没有运气。
这里有一个link到repo,相关文件贴在下面。
这是我的 circle.yml
文件。
machine:
hosts:
dusk.dev: 127.0.0.1
timezone: America/Los_Angeles
services:
- mysql
environment:
APP_ENV: testing
APP_KEY: randomq2VjceHV2t1Usdskeksa9yUI6a
post:
- chromedriver:
background: true
dependencies:
override:
- composer install --prefer-dist --no-interaction
post:
- mv .env.example .env
test:
override:
- vendor/bin/phpunit
# - ./vendor/laravel/dusk/bin/chromedriver-linux:
# background: true
- sudo php artisan serve --host=localhost --port=80:
background: true
- php artisan dusk
.env.example
我复制到 .env
APP_ENV=local
APP_KEY=base64:BaGXvpvUWnUbGA1RiOapw45K2UCK8AeYM3o62IDV9Qw=
APP_DEBUG=true
APP_LOG_LEVEL=debug
APP_URL=http://localhost
BROADCAST_DRIVER=log
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync
屏幕截图(来自 circleci,不是很有帮助)。
我发现这些文章很有用,但它们对我不起作用。
以下代码适用于我们。试试这个
circle.yml 文件.
machine:
pre:
- sudo sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'
- sudo apt-get update
- sudo apt-get install google-chrome-stable
services:
- mysql
dependencies:
override:
- composer install --prefer-dist --no-interaction
post:
- mv .env.testing .env
test:
override:
- vendor/bin/phpunit
- ./vendor/laravel/dusk/bin/chromedriver-linux:
background: true
- php artisan serve:
background: true
- php artisan dusk
.env.testing
APP_ENV=local
APP_KEY=base64:BaGXvpvUWnUbGA1RiOapw45K2UCK8AeYM3o62IDV9Qw=
APP_DEBUG=true
APP_LOG_LEVEL=debug
APP_URL=http://localhost:8000
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret
输出Checkout here
这是最终对我有用的配置。
circle.yml
machine:
pre:
- sudo apt-get update; USE_PRECOMPILE=true sudo -E circleci-install php 7.0.4
php:
version: 7.0.4
services:
- mysql
post:
- chromedriver:
background: true
dependencies:
pre:
- sudo composer self-update
post:
- cp .env.dusk.testing .env
- php artisan serve:
background: true
general:
artifacts:
- "tests/Browser/screenshots"
- "tests/Browser/console"
test:
override:
- vendor/bin/phpunit
- php artisan dusk
.env.dusk.testing
APP_ENV=testing
APP_KEY=base64:Secr3tSecr3tSecr3tSecr3tSecr3tSecr3tSecr3tSe
APP_DEBUG=true
APP_LOG_LEVEL=debug
APP_URL="http://localhost:8000"
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=circle_test
DB_USERNAME=ubuntu
DB_PASSWORD=
MAIL_DRIVER=log
BROADCAST_DRIVER=log
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync
有没有人能得到 Laravel Dusk working on CircleCI.
我可以让我的构建工作并使用 PHPUnit 进行测试,但它在 Laravel Dusk 时失败了。
我有一个安装了 Dusk 的基础 Laravel 安装。当我到达 php artisan dusk
命令时,出现以下错误。
错误
1) Tests\Browser\ExampleTest::testBasicExample
Did not see expected text [Laravel] within element [body].
Failed asserting that false is true.
所以它正在启动 chrome 浏览器,但没有访问该站点。
我试过 运行 Dusk 的 chromedriver-linux、circleci 的 chromedriver,没有使用 php serve 和其他各种调整。到目前为止,我还没有运气。
这里有一个link到repo,相关文件贴在下面。
这是我的 circle.yml
文件。
machine:
hosts:
dusk.dev: 127.0.0.1
timezone: America/Los_Angeles
services:
- mysql
environment:
APP_ENV: testing
APP_KEY: randomq2VjceHV2t1Usdskeksa9yUI6a
post:
- chromedriver:
background: true
dependencies:
override:
- composer install --prefer-dist --no-interaction
post:
- mv .env.example .env
test:
override:
- vendor/bin/phpunit
# - ./vendor/laravel/dusk/bin/chromedriver-linux:
# background: true
- sudo php artisan serve --host=localhost --port=80:
background: true
- php artisan dusk
.env.example
我复制到 .env
APP_ENV=local
APP_KEY=base64:BaGXvpvUWnUbGA1RiOapw45K2UCK8AeYM3o62IDV9Qw=
APP_DEBUG=true
APP_LOG_LEVEL=debug
APP_URL=http://localhost
BROADCAST_DRIVER=log
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync
屏幕截图(来自 circleci,不是很有帮助)。
我发现这些文章很有用,但它们对我不起作用。
以下代码适用于我们。试试这个
circle.yml 文件.
machine:
pre:
- sudo sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'
- sudo apt-get update
- sudo apt-get install google-chrome-stable
services:
- mysql
dependencies:
override:
- composer install --prefer-dist --no-interaction
post:
- mv .env.testing .env
test:
override:
- vendor/bin/phpunit
- ./vendor/laravel/dusk/bin/chromedriver-linux:
background: true
- php artisan serve:
background: true
- php artisan dusk
.env.testing
APP_ENV=local
APP_KEY=base64:BaGXvpvUWnUbGA1RiOapw45K2UCK8AeYM3o62IDV9Qw=
APP_DEBUG=true
APP_LOG_LEVEL=debug
APP_URL=http://localhost:8000
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret
输出Checkout here
这是最终对我有用的配置。
circle.yml
machine:
pre:
- sudo apt-get update; USE_PRECOMPILE=true sudo -E circleci-install php 7.0.4
php:
version: 7.0.4
services:
- mysql
post:
- chromedriver:
background: true
dependencies:
pre:
- sudo composer self-update
post:
- cp .env.dusk.testing .env
- php artisan serve:
background: true
general:
artifacts:
- "tests/Browser/screenshots"
- "tests/Browser/console"
test:
override:
- vendor/bin/phpunit
- php artisan dusk
.env.dusk.testing
APP_ENV=testing
APP_KEY=base64:Secr3tSecr3tSecr3tSecr3tSecr3tSecr3tSecr3tSe
APP_DEBUG=true
APP_LOG_LEVEL=debug
APP_URL="http://localhost:8000"
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=circle_test
DB_USERNAME=ubuntu
DB_PASSWORD=
MAIL_DRIVER=log
BROADCAST_DRIVER=log
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync