Topic 10: Test PHP project with PHPUnit
1. ในหน้า
Homepage ของ Jenkins ให้เลือก
New Item เพื่อสร้าง Item
ใหม่ ใน Jenkins โดยกดที่ New Item
5. จากนั้นเลือก Build ให้กด Add build step และเลือกเป็น Invoke Ant กำหนด Targets เป็น “build-phpunit”
เพื่อทำการ build PHPUnit และทดสอบ project อัตโนมัติทุกครั้ง เมื่อมีไฟล์ถูกดึงมากจาก Git ที่เกิดจากการ commit ล่าสุด
2.
เมื่อเลือก new item ให้ตั้งชื่อ Project
จากนั้นเลือกแบบ “Freestyle project”
และกด OK เพื่อสร้าง Project
3. ให้เลือก
Source Code Management และเลือกที่
Git เพื่อเพิ่ม Repository URL ซึ่งนำมาจาก
GitLab
หมายเหตุ: ถ้าหากไม่สามารถใส่
git repository ได้ จะต้องตั้งค่า config
ให้กับ Jenkins ให้เข้าไปที่ Directory
ของ Jemkins โดยคำสั่ง
cd /var/lib/jenkins/jobs/
git ls-remote -h git@gitlab.com:username/repository.git HEAD
git ls-remote -h git@gitlab.com:username/repository.git HEAD
หรือหลังจาก add ssh key
ให้ทดสอบ clone project มาไว้ใน Jenkins
เพื่อตรวจสอบ status การ link
ระหว่าง GitLab และ และ
Jenkins โดยเปลี่ยนเป็นใช้ผู้ใช้งานแบบ Jenkins
และใช้คำสั่ง
sudo su jenkins
cd ~
ssh-T git@gitlab.com
cd ~
ssh-T git@gitlab.com
หมายเหตุ: ถ้าหากสถานะ
200 เป็นสถานเชื่อต่อสำเร็จ แต่ถ้า 404 จะเชื่อมต่อไม่สำเร็จ
4. จากนั้นเลือก Build Triggers และเลือก
Poll SCM และกำหนดค่าเป็น * * * * * เพื่อตรวจสอบการเปลี่ยนแปลง
หรือการเพิ่มไฟล์ใหม่ใน Git ทุก
1 นาที (build automated 1 นาที)
จากนั้นกด Save
อ้างอิง: https://medium.com/devopsthailand/มี-git-แล้วชีวิตง่ายขึ้น-เรามา-set-ให้-jenkins-กับ-GitLab-รู้จักกันดีกว่า-65c983c6720f
5. จากนั้นเลือก Build ให้กด Add build step และเลือกเป็น Invoke Ant กำหนด Targets เป็น “build-phpunit”
เพื่อทำการ build PHPUnit และทดสอบ project อัตโนมัติทุกครั้ง เมื่อมีไฟล์ถูกดึงมากจาก Git ที่เกิดจากการ commit ล่าสุด
หมายเหตุ: build-phpunit
เป็น target ซึ่งสามารถตรวจสอบได้จากไฟล์
build.xml
3. ในส่วนของ Post-build Actions ให้กด Add post-build action และเลือก Publish xUnit test result report
เมื่อได้ดังนี้ ให้เลือก Add และเลือกเป็น PHPUnit-3.x (default) จากนั้นให้กำหนด
Path เป็น “build/logs/junit.xml”
ซึ่ง junit.xml เป็นไฟล์ที่เก็บผลลัพธ์จากการทดสอบของ PHPUnit
4. เมื่อทำการสร้างและตั้งค่าให้กับ Project
จะได้ตัวอย่างดังนี้
5. workspace จะเป็นโฟลเดอร์ในการเก็บ
project ที่ได้จากการ Pull
ของ git
6. ในการทดสอบ code โดย PHPUnit แบบอัตโนมัติ จะต้องใช้ build.xml และ phpunit.xml.dist
ซึ่งถูก build เมื่อมีไฟล์เพิ่ม
หรือแก้ไขบน GitLab ผ่าน Repository URL
6.1 การทดสอบ code
ด้วย PHPUnit จะต้องนำไฟล์ที่เขียนเพื่อทดสอบนมาเก็บไว้ในโฟลเดอร์
tests
6.2 build/logs
ถูกสร้างโดยไฟล์ build.xml จะเป็นโฟลเดอร์ที่เก็บผลการทดสอบไว้ในไฟล์
junit.xml ซึ่งใช้ในการแสดงผลบน Jenkins
6.3 โฟลเดอร์ project
ใช้เก็บ code เพื่อใช้ test
function
7. ตัวอย่าง code ที่ใช้ทดสอบด้วย PHPUnit
7.1 datax.php
จะถูกเก็บในโฟลเดอร์ Project เพื่อใช้ทดสอบ
function getUser มี code ดังนี้
7.2 dataxtest.php
จะถูกเก็บในโฟลเดอร์ tests เพื่อใช้ในการทดสอบด้วย PHPUnit มี code ดังนี้
8. เมื่อเขียนทดสอบเสร็จ ให้อัพขึ้น GitLab
ซึ่ง Jenkin จะทำการ pull
และทดสอบพร้อมกับแสดงผลลัพพธ์ ซึ่งสามารถดูผลการทดสอบได้ที่ Lastest
Test Result
อ้างอิง:
http://freepdf-books.com/integrating-php-projects-with-jenkins/












ความคิดเห็น
แสดงความคิดเห็น