Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
WordPress CI:如何使用 GitHub Action 自動測試你的設定、插件或者模版
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Hong Kong WordPress Meetup
November 04, 2025
Technology
17
0
Share
WordPress CI:如何使用 GitHub Action 自動測試你的設定、插件或者模版
Hong Kong WordPress Meetup
November 04, 2025
More Decks by Hong Kong WordPress Meetup
See All by Hong Kong WordPress Meetup
Hong Kong WordPress Meetup #95
hkwp
0
11
Why Design Matters: First Impressions Count
hkwp
0
10
Hong Kong WordPress Meetup #94
hkwp
0
15
AI 召喚師的奧義:WordPress 網站生成術
hkwp
0
18
Hong Kong WordPress Meetup #93
hkwp
0
18
The 5 Essential UI Principles You Can Apply to Your Website Today
hkwp
0
19
使用WordPress作為街頭訪問工具(Presented)
hkwp
0
14
Hong Kong WordPress Meetup #92
hkwp
0
27
My WordCamp Malaysia
hkwp
0
95
Other Decks in Technology
See All in Technology
【社内勉強会】新年度からコーディングエージェントを使いこなす - 構造と制約で引き出すClaude Codeの実践知
nwiizo
33
15k
Zephyr(RTOS)でOpenPLCを実装してみた
iotengineer22
0
160
OCI技術資料 : 証明書サービス概要
ocise
1
7.1k
Even G2 クイックスタートガイド(日本語版)
vrshinobi1
0
160
GitHub Advanced Security × Defender for Cloudで開発とSecOpsのサイロを超える: コードとクラウドをつなぐ、開発プラットフォームのセキュリティ
yuriemori
1
120
OpenClawでPM業務を自動化
knishioka
2
350
Microsoft Fabricで考える非構造データのAI活用
ryomaru0825
0
530
AI時代のオンプレ-クラウドキャリアチェンジ考
yuu0w0yuu
0
660
会社紹介資料 / Sansan Company Profile
sansan33
PRO
16
410k
The essence of decision-making lies in primary data
kaminashi
0
190
20260326_AIDD事例紹介_ULSC.pdf
findy_eventslides
0
240
Oracle AI Database@AWS:サービス概要のご紹介
oracle4engineer
PRO
3
2k
Featured
See All Featured
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.2k
4 Signs Your Business is Dying
shpigford
187
22k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
160
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
440
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
160
Design in an AI World
tapps
0
180
Odyssey Design
rkendrick25
PRO
2
560
Technical Leadership for Architectural Decision Making
baasie
3
300
Product Roadmaps are Hard
iamctodd
PRO
55
12k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
160
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.2k
Transcript
WordPress CI 如何使用 GitHub Action 自動測試你的設定、插件或者模版
今次會講啲乜? • 點解要自動測試? • 試啲乜? • 有乜麻煩位? • 測試常用工具 •
自動化平台及工具 • WordPress CI • 點樣一步步邁向自動測試 • 進階少少應用
今次唔會講啲乜? • 點用 git • 點用 composer • PSR /
Autoload • Modern PHP
大家嚟到,有心聽,不妨參與多啲 • 唔明開聲問吧 • 嘗試照顧不同程度朋友 • 希望大家唔好嫌慢,但覺得太快請開聲
點解要做自動測試?
點解要做自動測試?
點解要做自動測試? • AI 幻覺 • AI 爛貨 (AI Slop) •
世人總要重覆錯誤 (Regression) • 數齊啲貨,確保真係做咗
點解要做自動測試? • AI 幻覺 • AI 爛貨 (AI Slop) •
世人總要重覆錯誤 (Regression) • 數齊啲貨,確保真係做咗
應該測試啲乜?
測試啲乜? • 元件測試 (Unit Test) 測試「零件」,比如 Function / Class •
框架測試 (Framework Test) 針對編程框架的銜接做測試,假設框架正常 • 需求測試 (Acceptance Test / End-to-end Test) 盡量模擬真實環境,測試最終交付的功能性
測試啲乜? • 元件測試 (Unit Test) 測試「零件」,比如 Function / Class(今日唔講) •
框架測試 (Framework Test) 針對編程框架的銜接做測試,假設框架正常 (今日唔講) • 需求測試 (Acceptance Test / End-to-end Test) 盡量模擬真實環境,測試最終交付的功能性
有乜嘢麻煩位?
有乜嘢麻煩位? • WordPress 要好多嘢先行到 • 我啲 Plugin / Theme 要裝好哂
WordPress 之後再 activate • 我有自己資料同設定 • 有唔同 PHP 版本我想試 • 點樣扮瀏覽器先?要扮用戶登入要 cookie 喎,仲有 Javascript…
正常一個 WordPress 要點先測試到?
正常一個 WordPress 要點先測試到? WordPress (Source Code) MySQL / MariaDB PHP-FPM
/ mod_php Apache / Nginx Chrome / Firefox / Edge 用戶操作 Codeception WebDriver WordPress CI
仲有啲乜工具可以方便做自動測試?
仲有啲乜工具可以方便做自動測試? 本地 Docker 平台 Docker GitHub Action
一步步邁向做自動測試?
一步步邁向做自動測試? • 加入 Git 版本控制 (如果未用緊) • 先寫本地測試 • 本地運行
• 加入 GitHub Actions • 慢慢加入 Workflow,將本地測試在 GitHub 平台上跑
本地測試
PHPUnit
PHP Unit • 老牌子 • 多人用 • Codeception 聯乘 •
有其他選擇: ◦ PHPSpec ◦ Kahlan
PHP Unit • 時間有限,今日唔試比大家睇
WebDriver
WebDriver • Selenium • W3C 互聯網標準 2018 年起為推薦標準 (W3C Recommendation)
• 支援的瀏覽器: ◦ Chrome / Chromium ◦ Firefox ◦ Edge ◦ Safari ◦ IE
Composer
Composer • 管理相依關係 • PSR-4 autoload • Modern PHP 常用
• 方便的方法分享腳本 (script)
Codeception + WebDriver
Demo • Docker https://www.docker.com/ • Docker Compose https://docs.docker.com/compose/install • WordPress
CI https://github.com/impressible-wp /wordpress-ci/pkgs/container/wordpress-ci
Demo • Find Docker Container docker ps • Run Command
in Docker Container docker exec -it container-id command command-arg1 … • WordPress CLI (wp-cli) https://wp-cli.org/ docker exec -it container-id wp …
本地測試 WordPress (Source Code) MySQL / MariaDB PHP-FPM / mod_php
Apache / Nginx Chrome / Firefox / Edge 用戶操作 Codeception WebDriver WordPress CI
Demo • WebDriver https://www.w3.org/TR/webdriver1/ • Codeception https://codeception.com • Codeception: WebDriver
module https://codeception.com/docs/modules/WebDriver
注意 • Codeception 預設用 PHPBrowser 模擬瀏覽器 • 使用 codecept init
指令產生的 acceptance 用 PHPBrowser • 要改 codeception.yml 與及 tests/Acceptance.yml • 令佢使用 WebDriver module • 不同的瀏覽器,需使用不同的 WebDriver 驅動程式,設定稍有不同
本地測試 WordPress (Source Code) MySQL / MariaDB PHP-FPM / mod_php
Apache / Nginx Chrome / Firefox / Edge 用戶操作 Codeception WebDriver WordPress CI
GitHub 自動測試
WordPress CI on GitHub Action • WordPress CI on GitHub
Marketplace https://github.com/marketplace/actions/wordpress-ci
WordPress CI on GitHub Action
WordPress CI on GitHub Action
WordPress CI on GitHub Action
WordPress CI on GitHub Action
WordPress CI on GitHub Action • Run Commands in WordPress
CI container (i.e. "Server") wpci-cmd command command-arg1 … • WordPress CLI (wp-cli) wpci-cmd wp …
點樣再進一步?
有圖有真相,截圖
模擬用戶登入
匯入資料庫做測試
錯誤處理
大致係咁,有乜想問?
持續交付 Continuous Delivery (CD)
WordPress CI 如何使用 GitHub Action 自動測試你的設定、插件或者模版 (完)