↓ 快轉到主要內容
PHP 也有 Day #42 - Laravel Dusk 使用及研究
技術文章其他類型

PHP 也有 Day #42 - Laravel Dusk 使用及研究

Posted by Alvin Chen on

PHP 也有 Day #42 - Laravel Dusk 使用及研究

·702 字·2 分鐘
作者
Alvin Chen
相信寫 Code 可以改變世界

本篇重點 : 不是教你使用 Laravel Dusk,而是帶你如何看Laravel Dusk套件的原始碼

講者介紹 : Recca 使用 laravel 開發網站,生性懶惰健忘,認為自動測試是自己還能勉強待在程式業的理由之一。

延伸閱讀 :

PHP 也有 Day #41 – 人生不能重來,但 Git 可以之「如何華麗的做一個後悔的動作」

外部參考連結:

https://speakerdeck.com/starrocket/php-ye-you-day-number-42-laravel-dusk-shi-yong-ji-yan-jiu

課程大綱

  • 什麼是laravel Dusk
  • 怎麼配置
  • 優缺點
  • 怎麼測試

什麼是laravel Dusk?

Auto browser test

自動由電腦進行瀏覽器測試

不需要selenium puppeteer testcafe(有包裝facebook/webdrive 已經含有selenium)


如何安裝?

看官網,composer install

在laradock官網下可以配置

Php artisan dusk:install 會出現browser資料夾

Laravel Dusk

*整合測試vs brower test? 一個是測試功能面,一個是完整的瀏覽器測試 包含view js 等等

Laravel Dusk

缺點:不支援多瀏覽器 docker設置困難 彈性相對較差

Git hub連結?



Larval dusk 研究

Composer.js 宣告套件測試 相依套件

找到程式進入點 : serviceProvider

Boot中有三個 Rout::get()套件中沒有說明

installCommand

  1. Handle() 建立資料夾 處理stubs 建檔 回傳完成
  2. Fire() 不支援

很接近的command (make page component)

Dusk command

$this->withDuskEnvironment()

Dusk 與dusk:fail 去執行phpunit

套件中已經包含chrome drive,三個系統對應的執行檔中都有

用process直接跑對應系統的執行檔

Laravel Dusk

assertTitle

用phpunit::assertEquals 實作

Concerns ?

Laradock 裡面去找 dockerfile

**只看到測試結果還是有過程? 與phpunit相同,只有出錯的時候多做了screenshot有截圖

總結 :

套件訊息可以在packige上面找

通常程式碼在github上同名(但有例外)

參考前輩別人的寫法思考這樣設計的好處

seviceprovider是進入點

Selenium 比起dusk 前期設定要比較久,其餘差不多