ชุดทดสอบ Laravel Dusk แบบสแตนด์อโลน ซึ่งไม่จำเป็นต้องใช้เฟรมเวิร์ก Laravel เอง
Laravel Dusk นำเสนอ API การทดสอบและอัตโนมัติของเบราว์เซอร์ที่แสดงออกและใช้งานง่าย ตามค่าเริ่มต้น Dusk ไม่ต้องการให้คุณติดตั้ง JDK หรือ Selenium บนเครื่องของคุณ Dusk ใช้ไดรเวอร์ Chrome แบบสแตนด์อโลนแทน อย่างไรก็ตาม คุณสามารถใช้ไดรเวอร์ Selenium อื่นๆ ได้ตามต้องการ
ในการเริ่มต้น คุณควรเพิ่มการพึ่งพา Composer ของ unglud/dusker ให้กับโปรเจ็กต์ของคุณ:
composer require --dev unglud/dusker
ถัดไป คุณจะต้องคัดลอกไฟล์ที่จำเป็นทั้งหมดไปยังไดเร็กทอรีการทำงานของคุณ คำสั่งด้านล่างจะทำเพื่อคุณ สร้าง (หรือใช้ที่มีอยู่) ไดเร็กทอรี tests
และใส่ไฟล์ไว้ที่นั่น นอกจากนี้ยังคัดลอกยูทิลิตี้คอนโซล artisan
ไปยังไดเร็กทอรีรูทโปรเจ็กต์ของคุณ หากคุณมีไฟล์นี้อยู่แล้ว ไฟล์นั้นจะถูกเขียนทับ!
ไฟล์ .env.dusk
จะอยู่ในรูทโปรเจ็กต์ของคุณเช่นกัน ซึ่งคุณจะต้องเปลี่ยนชื่อเป็น .env
หรือคัดลอกเนื้อหาไปยังไฟล์ที่มีอยู่
composer run-script post-install-cmd -d ./vendor/unglud/dusker
หากคุณต้องการให้ไฟล์เหล่านี้อัปเดตโดยอัตโนมัติทุกครั้งที่คุณอัปเดตแพ็คเกจนี้ คุณสามารถเพิ่มสิ่งนี้ลงในไฟล์ composer.json
ของคุณได้:
"scripts": { "post-install-cmd": [ "DuskerCopyFile::copy" ], "post-update-cmd": [ "DuskerCopyFile::copy" ] }, "extra": { "copy-file": { "vendor/unglud/dusker/src/example/": "tests/", "vendor/unglud/dusker/artisan": "artisan" } }
ดังที่คุณสังเกตเห็นว่าไฟล์ .env.dusk
ไม่ได้รวมอยู่ด้วยเพื่อทำให้สิ่งต่าง ๆ ง่ายขึ้น
หลังจากติดตั้งแพ็คเกจแล้ว คำสั่ง Artisan จะพร้อมใช้งานจากโปรเจ็กต์รูทของคุณ เรียกใช้ dusk:install
คำสั่ง Artisan:
php artisan dusk:install
ตอนนี้ให้ลองรันการทดสอบเพื่อให้แน่ใจว่าทุกอย่างใช้งานได้
php artisan dusk
หลังจากส่วนนี้ คุณสามารถใช้เอกสารอย่างเป็นทางการสำหรับ Dusk บนเว็บไซต์ Laravel `เพราะมันจะทำงานตรงตามที่ออกแบบโดย Taylor Otwell
บ่อยครั้ง คุณจะทดสอบหน้าเว็บที่ต้องมีการรับรองความถูกต้อง คุณสามารถใช้วิธี LoginAs ของ Dusk เพื่อหลีกเลี่ยงการโต้ตอบกับหน้าจอเข้าสู่ระบบในระหว่างการทดสอบทุกครั้ง วิธีการ LoginAs ยอมรับ login
ของผู้ใช้และ password
:
$this->browse(function (Browser $browser) { $browser->loginAs('username', 'password') ->visit('/home'); });
หลังจากใช้เมธอด LoginAs เซสชันผู้ใช้จะถูกคงไว้สำหรับการทดสอบทั้งหมดภายในไฟล์
เนื่องจากเราไม่สามารถเข้าถึง Auth
และ Router
ดั้งเดิมจาก Laravel ได้ เนื่องจากเราใช้มันโดยไม่มี Laravel เราจึงต้องตั้งค่าฟังก์ชันการเข้าสู่ระบบ ใน .env
คุณควรระบุ LOGIN_ENDPOINT
-- เส้นทางไปยังไดเรกทอรีสาธารณะของคุณ โดยที่ Dusker จะคัดลอกไฟล์ซึ่งจะสามารถเข้าถึงได้จากเบราว์เซอร์ โดยค่าเริ่มต้น http://example.com/_dusker/login.php
LOGIN_IMPLEMENTATION
ที่สอง -- เส้นทางไปยังชั้นเรียนของคุณ ซึ่งใช้ตรรกะของโครงการของคุณที่อนุญาตการตรวจสอบสิทธิ์ คุณสามารถใช้ /tests/LoginManagerExample.php
เป็นตัวอย่างว่าควรมีลักษณะอย่างไร
Dusker ได้รับการเผยแพร่ภายใต้ใบอนุญาต MIT ดูรายละเอียดในไฟล์ LICENSE ที่ให้มา