iT邦幫忙

2021 iThome 鐵人賽

DAY 28
2
Modern Web

當拉拉肉遇到單元測試,是否能夠擦出命運的火花?系列 第 29

[Day 28] 使用ChromeDriver來做單元測試(一)

Laravel Dusk提供了一個自動化的測試API,
不用安裝Selenium等軟體,
直接用獨立的ChromeDriver,
當然也是可以搭配Selenium或其他相關軟體。

首先我們要先安裝Laravel Dusk
composer require --dev laravel/dusk
https://ithelp.ithome.com.tw/upload/images/20210929/20105694vAcXCOjTdw.png

接下來執行dusk:install指令,
這個指令將會在tests資料夾底下建立一個Browser目錄和一個範例
php artisan dusk:install
https://ithelp.ithome.com.tw/upload/images/20210929/20105694stvAUj6vA6.png

會自動產生一個範例
tests/Browser/ExampleTest.php

<?php

namespace Tests\Browser;

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

class ExampleTest extends DuskTestCase
{
    /**
     * A basic browser test example.
     *
     * @return void
     */
    public function testBasicExample()
    {
        $this->browse(function (Browser $browser) {
            $browser->visit('/')
                    ->assertSee('Laravel');
        });
    }
}

然後我們來執行範例看看
php artisan dusk
https://ithelp.ithome.com.tw/upload/images/20210929/20105694UgbdZh6Bwd.png

馬上就跳錯誤了,
這是因為dusk會吃.env裡面的APP_URL,
所以我們要把這個參數改成跟我們的網站設定值一樣,
APP_URL=http://127.0.0.1:9654
再執行一次測試
php artisan dusk
https://ithelp.ithome.com.tw/upload/images/20210929/201056947Ve5PLZnOv.png

果然就成功了!
恭喜你這是我們完成的第一個使用ChromeDriver作的單元測試。

另外,如果上次測試失敗,
可以執行指令只運行上次失敗的測試
php artisan dusk:fails


上一篇
[Day 27] 甚麼是ChromeDriver?可以自動駕駛嗎?
下一篇
[Day 29] 使用ChromeDriver來做單元測試(二)
系列文
當拉拉肉遇到單元測試,是否能夠擦出命運的火花?31

尚未有邦友留言

立即登入留言