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

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

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

User avatar
tsukasaz
PHP VIP Members
PHP VIP Members
Posts: 12581
Joined: 18/04/2012 9:39 am

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

Post by 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 710 times
ใน XAMPP Control Panel มี shell อยู่ครับ เปิด shell ขึ้นมาครับ
phppp-phpunit02.png
phppp-phpunit02.png (53.25 KiB) Viewed 710 times
เข้าไปในโฟลเดอร์ testphpbb แล้วพิมพ์

Code: Select all

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

Code: Select all

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

Code: Select all

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 710 times

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

Code: Select all

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

Code: Select all

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

Code: Select all

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 710 times
หมายเหตุ การทดสอบนี้มันจะติดตั้ง phpBB ใหม่ทุกครั้งที่สั่งทำงาน (ลบตารางข้อมูลหมด)
The last bug isn't fixed until the last user is dead. (Sidney Markowitz, 1995)
User avatar
thatsawan
PHP VIP Members
PHP VIP Members
Posts: 27279
Joined: 31/03/2014 10:02 am
Contact:

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

Post by thatsawan »

:like:
น่ารักจุงเบย พี่ชายเก๊า
Post Reply
  • Similar Topics
    Replies
    Views
    Last post

Return to “Software testing”

Who is online

Users browsing this forum: No registered users and 1 guest