2017-04-19 68 views
6

有沒有人能夠得到Laravel DuskCircleCI上工作。Laravel Phpunit和CircleCI的黃昏

我可以讓我的構建工作並使用PHPUnit進行測試,但Laravel 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. 

所以它開始chromebrowser,但沒有擊中部位。

我試過運行黃昏的chromedriver-linux,circleci的chromedriver,沒有使用PHP服務和相當多的其他調整。到目前爲止,我還沒有運氣。

這裏是鏈接到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拉,不是非常有幫助)。

enter image description here

我發現這些文章這是有幫助的,但他們並沒有爲我工作。

+0

嘗試的PHP版本添加到您的circle.yml文件'PHP:版本:5.6.5'你的時區後 –

+0

@AmrAly感謝您的建議,但它具有相同的錯誤。 – whoacowboy

+0

這只是一個建議,但嘗試將'dusk.dev:127.0.0.1'更改爲'dusk.dev:localhost'或'dusk.dev:0.0.0.0' – NullDev

回答

4

下面的代碼爲我們工作。試試這個

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

+0

感謝您的回答。我有'sudo php artisan serve',我需要刪除'sudo'。 – whoacowboy

0

這是最終爲我工作的配置。

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。測試

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