การทำ Unit Testing บน phpBB 3.1 ด้วย PHPUnit

Software testing ความรู้ สำหรับ Tester ผู้ทดสอบ เป็นส่วนสำคัญในการ test โปรแกรม การ ทดสอบโปรแกรมมีความรู้แนะนำไว้ในหมวดนี้

Moderator: mindphp, ผู้ดูแลกระดาน

ภาพประจำตัวสมาชิก
tsukasaz
PHP VIP Members
PHP VIP Members
โพสต์: 21991
ลงทะเบียนเมื่อ: 18/04/2012 9:39 am

การทำ Unit Testing บน phpBB 3.1 ด้วย PHPUnit

โพสต์ที่ยังไม่ได้อ่าน โดย tsukasaz »

ทำความรู้จัก phpBB คืออะไร
phpBB ดาวน์โหลดเวอร์ชั่นล่าสุดได้ที่ https://www.phpbb.com/downloads/

มาเข้าเรื่องกันดีกว่าเพราะหมวดนี้เป็นเรื่องของ Software Testing ก็ต้องบอกว่าโชคดีมากสำหรับนักพัฒนาระบบ phpBB เพราะมีระบบ Tests เตรียมไว้ให้แล้ว สามารถเข้าไปศึกษาได้ที่ https://wiki.phpbb.com/Automated_Tests
โฟลเดอร์ Tests ดาวน์โหลดได้ที่ https://github.com/phpbb/phpbb
วิธีการ Run https://github.com/phpbb/phpbb/blob/dev ... G_TESTS.md

สำหรับใครที่ทำได้ตามลิงค์ด้านบนมันจะแสดงผลของการทดสอบ phpBB ทั้งหมด ผ่านกี่ไฟล์ ไม่ผ่านกี่ไฟล์ มี Error ตรงไหนบ้าง แต่ต้องบอกว่าใช้เวลาพอสมควร เพราะมันทดสอบประมาณ 4,000 กว่าไฟล์ แต่สำหรับการนำไปใช้ในงานจริง ถ้าพัฒนา Extensions แล้วอยากจะทดสอบแค่เฉพาะส่วนที่ทำเท่านั้นจะทำอย่างไรดี หลังจากนั่งงมอยู่นานก็พอจะหาคำตอบได้ และคิดว่าน่าจะเป็นประโยชน์สำหรับคนที่กำลังอยากใช้ PHPUnit ใน phpBB

เริ่มต้นดาวน์โหลด phpBB มาครับ ในตัวอย่างจำลองเซิฟเวอร์ด้วย XAMPP จะแตกไฟล์ไว้ที่โฟลเดอร์ htdocs แตกไฟล์เสร็จแล้วในตัวอย่างนี้ขอตั้งชื่อโฟลเดอร์ว่า testphpbb นะครับ
ยังไม่ต้องติดตั้ง phpBB ครับ สิ่งที่ต้องใช้อีกตัวคือ โฟลเดอร์ tests จาก https://github.com/phpbb/phpbb เอาเฉพาะโฟลเดอร์ tests กับไฟล์ composer.phar มาครับมาวางในโฟลเดอร์ testphpbb
phppp-phpunit01.png
phppp-phpunit01.png (59.82 KiB) Viewed 1274 times
ใน XAMPP Control Panel มี shell อยู่ครับ เปิด shell ขึ้นมาครับ
phppp-phpunit02.png
phppp-phpunit02.png (53.25 KiB) Viewed 1274 times
เข้าไปในโฟลเดอร์ testphpbb แล้วพิมพ์

โค้ด: เลือกทั้งหมด

php composer.phar install --dev
phppp-phpunit03.png
phppp-phpunit03.png (20.64 KiB) Viewed 1274 times
ถ้าเจอปัญหาเหมือนภาพด้านล่างให้พิมพ์

โค้ด: เลือกทั้งหมด

php composer.phar update
phppp-phpunit04.png
phppp-phpunit04.png (25.69 KiB) Viewed 1274 times
phppp-phpunit05.png
phppp-phpunit05.png (24.46 KiB) Viewed 1274 times
ขั้นตอนต่อมาในตัวอย่างจะโหลด Extension ตัวอย่างของ phpBB มาทดสอบกับ PHPUnit https://github.com/nickvergessen/phpbb-ext-acme-demo โดยผ่านคำสั่ง git พิมพ์

โค้ด: เลือกทั้งหมด

git clone https://github.com/nickvergessen/phpbb-ext-acme-demo.git D:\xampp\htdocs\testphpbb\ext\acme\demo
เปลี่ยนที่อยู่ไฟล์ของตัวเองให้ถูกต้อง
ต่อไปจะเป็นเรื่องของการแก้ไขที่อยู่ไฟล์ให้มันสามารถใช้กับงานของเราได้
เปิดไฟล์ testphpbb\ext\acme\demo\phpunit.xml.dist ขึ้นมาแก้ไข ที่อยู่ของไฟล์ bootstrap.php ให้เหมือนในภาพ
phppp-phpunit06.png
phppp-phpunit06.png (51.63 KiB) Viewed 1274 times

เปิดไฟล์ในโฟลเดอร์ tests/test_framework ค้นหาคำว่า phpBB แล้วลบออก เฉพาะที่เป็นการอ้างอิงที่อยู่ไฟล์

โค้ด: เลือกทั้งหมด

phpbb_database_test_connection_manager.php
phpbb_functional_test_case.php
phpbb_ui_test_case.php
เปิดไฟล์ bootstrap.php ใน โฟลเดอร์ tests แล้ว แก้ไข $phpbb_root_path เป็นค่าว่าง
ในโฟลเดอร์ tests สร้างไฟล์ test_config.php

โค้ด: เลือกทั้งหมด

 <?php
// ข้อมูลสำหรับเชื่อมต่อฐานข้อมูล
$dbms = 'phpbb\db\driver\mysqli'; // ถ้าใช้ mysql ก็ใช้ตามนี้
$dbhost = 'localhost';
$dbport = '';
$dbname = 'testphpbb'; // ชื่อฐานข้อมูลที่ใช้
$dbuser = 'root'; // ชื่อผู้ใช้ฐานข้อมูล
$dbpasswd = ''; // รหัสผ่านเข้าฐานข้อมูล
$phpbb_functional_url = 'http://localhost/testphpbb/'; // url ที่เข้าใช้งาน phpbb   
เสร็จแล้วเราทดสอบพิมพ์

โค้ด: เลือกทั้งหมด

D:\xampp\htdocs\testphpbb\vendor\bin\phpunit -c D:\xampp\htdocs\testphpbb\ext\acme\demo\phpunit.xml.dist
ผลการทดสอบใน Extension
phppp-phpunit07.png
phppp-phpunit07.png (23.27 KiB) Viewed 1274 times
หมายเหตุ การทดสอบนี้มันจะติดตั้ง phpBB ใหม่ทุกครั้งที่สั่งทำงาน (ลบตารางข้อมูลหมด)
The last bug isn't fixed until the last user is dead. (Sidney Markowitz, 1995)
ภาพประจำตัวสมาชิก
thatsawan
PHP VIP Members
PHP VIP Members
โพสต์: 28508
ลงทะเบียนเมื่อ: 31/03/2014 10:02 am
ติดต่อ:

Re: การทำ Unit Testing บน phpBB 3.1 ด้วย PHPUnit

โพสต์ที่ยังไม่ได้อ่าน โดย thatsawan »

:like:
น่ารักจุงเบย พี่ชายเก๊า
ตอบกลับโพส
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 63