Topic 5: PHP Project Structure
-
Part 1: Continuous Integration
Continuous Integration มีความสามารถในการทดสอบประสิทธิภาพ
หรือปรับปรุงคุณภาพของการพัฒนา Software ให้ดีขึ้น
เช่น สามารถทดสอบ test case เมื่อ
source code มีเปลี่ยนแปลง และสามารถทดสอบได้แบบอัตโนมัติ
เมื่อเกิดปัญหาระบบจะหยุดทำงาน และแสดงรายละเอียดของปัญหา
-
Part 2: Jenkins
Jenkins คือ CI
(Continuous Integration) ไม่ใช่ library
หรือเครื่องมือที่ใช้ทดสอบประสิทธิภาพของ code
แต่จะเขียน bash script หรือ
build.xml สั่งงานให้แสดงผลลัพธ์ของการทดสอบ code
โดยใช้ปลั๊กอินของ PHPUnit คือ junit ในการทำ Project
PHP จะต้องเขียน code เพื่อทดสอบชุดคำสั่งหรือ
function การทำงาน โดยใช้ PHPUnit
ทำ unit test และ gen
xml file ออกมาเพื่อให้ junit ทำ report
แสดงผลลัพธ์ของการทดสอบ เพราะถ้าหากไม่เขียนเป็น PHPUnit
จะไม่สามารถทดสอบ code ได้
ในการเขียน code จะไม่มีการโยน code เข้าไปตรง
ๆ แต่ต้องเขียน unit test เป็น
test case ต่าง ๆ ครอบอีกชั้นนึง ซึ่งต้องเขียนก่อน
นำขึ้นไป run บน Jenkins
- Part 3: Automate build ใน Jenkins
1. จัดเรียงไฟล์ใน
PHP Project ดังนี้
PHP Project
|-- src
|-- source codes for PHP Project
|-- test
|-- source codes for PHPUnit test
|-- build.xml
|-- phpunit.xml.dist
|-- src
|-- source codes for PHP Project
|-- test
|-- source codes for PHPUnit test
|-- build.xml
|-- phpunit.xml.dist
รายละเอียดของ
directory มีดังนี้
1. src จะใช้เก็บ source code หรือ
application ต่าง ๆ
2. test จะแก็บ source code เพื่อใช้ในการทดสอบ
function ด้วย PHPUnit test
3. build.xml คือ script ในการสร้าง Ant แบบ autoload ใน Jenkins
4. phpunit.xml.dist
คือ ไฟล์การตั้งค่าของ PHPUnit สำหรับใช้ใน Jenkins
- Part 4: ตั้งค่าให้กับ PHP tools ใน PHP Project
1. ในการใช้ Apache
Ant เพื่อทำ automate build ของ
Jenkins จะต้องสร้างไฟล์ build.xml เพื่อเรียกใช้งาน
PHPUnit สามารถเขียน script
ดังนี้
2. ตั้งค่าให้กับ PHPUnit โดยการสร้างไฟล์ phpunit.xml.dist เพื่อเรียกใช้งาน junit ให้สร้าง report ของการทดสอบ สามารถเขียน script ดังนี้
อ้างอิง:
http://jenkins-php.org/index.html
ตัวอย่างผลลัพธ์ที่ได้ มีดังนี้
ความคิดเห็น
แสดงความคิดเห็น