- PHPUnit HTTP Web test example

./tests/Feature/WebTest.php 소스


namespace Tests\Feature;

use Tests\TestCase;
use Illuminate\Foundation\Testing\RefreshDatabase;

class WebTest extends TestCase
    public function testBasicTest()
        $response = $this->get('/');


* 검사 실행

./vendor/bin/phputil tests/Feature/WebTest.php

./tests/Feature/WebDuskTest.php 소스


use Tests\DuskTestCase;
use Laravel\Dusk\Browser;
use Illuminate\Foundation\Testing\DatabaseMigrations;

class WebDuskTest extends DuskTestCase
    public function testBasicExample2()
        $this->browse(function (Browser $browser) {
                    ->assertSee('Laravel 5');


* 검사 실행

./vendor/bin/phputil tests/Feature/WebDuskTest.php

    - 에러 메시지
Error: Call to undefined method Tests\Feature\ExampleTest::visit()

    - 해결 방법
dusk 패키지 설치

* Dusk 패키지 설치
composer require --dev laravel/dusk

    - 패키지 설치 에러
    laravel/dusk v4.0.0 requires illuminate/support ~5.6

    - 해결방법 : 낮은 버전을 설치한다.
composer require --dev laravel/dusk:2.*

* dusk 등록
php artisan dusk:install
    - tests/Browser 폴더가 생성됨

    - dusk 실행을 위한 설정
dusk는 config/app.php 파일을 참조한다.(.env 아님)
    'url' => 'http://localhost:8000',
    'env' => env('APP_ENV', 'local'),

* PHPUnit 테스트 실행
./phpunit tests/Browser/ExampleTest

    - php artisan dusk 로 실행하면 안됨 - Test.php를 찾는 것 같음, 시간 오래 걸림
        - 만약 실수 실해 했다면 실행된 프로세스를 모두 종료 시켜야 함
            - chromedriver-win.exe, chrome, "cmd /V:ON /E:ON /D /C ..."

    - 에러 메시지
Facebook\WebDriver\Exception\UnknownServerException: unknown error: unhandled inspector error: {"code":-32000,"message":"Cannot navigate to invalid URL"}

    - 해결 방법
config/app.php 파일에서 url 항목을 제대로 적어 준다
    예)    'url' => 'http://localhost:8000',

    - 에러 메시지
Exception: It is unsafe to run Dusk in production.

    - 해결 방법
config/app.php 파일에서 env 항목을 local로 설정
    'env' => env('APP_ENV', 'local'),


Posted by codens

댓글을 달아 주세요