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

Post a reply

Smilies
:icon_plusone: :like: :plusone: :gfb: :-D :) :( :-o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: :angry: :baa: :biggrin:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: การทำ Unit Testing บน phpBB 3.1 ด้วย PHPUnit

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

by thatsawan » 01/12/2014 7:07 pm

:like:
น่ารักจุงเบย พี่ชายเก๊า

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

by tsukasaz » 01/12/2014 7:03 pm

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

Code: Select all

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

Code: Select all

php composer.phar update
phppp-phpunit04.png
phppp-phpunit04.png (25.69 KiB) Viewed 678 times
phppp-phpunit05.png
phppp-phpunit05.png (24.46 KiB) Viewed 678 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 678 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 678 times
หมายเหตุ การทดสอบนี้มันจะติดตั้ง phpBB ใหม่ทุกครั้งที่สั่งทำงาน (ลบตารางข้อมูลหมด)

Top