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
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Hong Kong WordPress Meetup
November 04, 2025
Technology
36
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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
GDG Cloud Hong Kong Introduction
hkwp
0
10
Vibe Coding” (氛圍編碼):從 UI/UX 到網站開發
hkwp
0
10
About WordPress and Hong Kong WordPress Meetup
hkwp
0
13
Hong Kong WordPress Meetup #98
hkwp
0
10
AI SEO 轉化革命:在 AI Overview 時代,如何從更少的流量中獲得更高的訂單轉化?
hkwp
0
19
AI 召喚師的奧義:WordPress 網站生成術 for HKOSCon 2026
hkwp
0
18
HKOSCon 2026 WordPress Sessions
hkwp
0
22
WordPress, Hugo and Astro – Pick the Best Open-Source CMS
hkwp
0
19
Hong Kong WordPress Meetup #97
hkwp
0
21
Other Decks in Technology
See All in Technology
Hatena Engineer Seminar 37 jj1uzh
jj1uzh
0
170
Agile and AI Redmine Japan 2026
hiranabe
4
500
MySQL & MySQL HeatWave Report - June 2026
freshdaz
0
200
スタートアップにAmazon EKSは早すぎる? マルチプロダクト戦略を加速する Platform Engineeringの実践 / Is Amazon EKS Too Soon for Startups? Practical Platform Engineering to Accelerate a Multi-Product Strategy
elmodev09
1
1.9k
From Prompt Engineering to Loop Engineering
shibuiwilliam
1
280
Docker Desktop不要の時代が来る? WSL標準の「wslc」で Linuxコンテナを動かしてみた.
ueponx
0
150
いまさら聞けない「仕様駆動開発入門」 〜AI活用時代の開発プロセスを考える〜
findy_eventslides
2
230
千葉での単身赴任からAWSをやり続け、千葉に戻ってきた話
yama3133
1
130
コミュニティの有益性 ~JAWS Days 2026 での体験を通して~ / The Benefits of a Community ~Through My Experience at JAWS Days 2026~
seike460
PRO
0
300
アラート調査向けAIエージェントの本番導入とその後/AI Agents for Alert Investigation: Production Deployment and After
taddy_919
1
250
CVE-2026-20833_脆弱性対応とAES 化について
jukishiya
0
160
クラウドファンディング版StackChan 3体(4体)をインタラクティブな体験型作品にして展示もした話 / スタックチャンお誕生日会2026
you
PRO
0
240
Featured
See All Featured
Un-Boring Meetings
codingconduct
0
320
Raft: Consensus for Rubyists
vanstee
141
7.6k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
870
Reality Check: Gamification 10 Years Later
codingconduct
0
2.2k
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.3k
Mind Mapping
helmedeiros
PRO
1
260
4 Signs Your Business is Dying
shpigford
187
22k
Color Theory Basics | Prateek | Gurzu
gurzu
0
370
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
201
75k
Everyday Curiosity
cassininazir
0
240
YesSQL, Process and Tooling at Scale
rocio
174
15k
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 自動測試你的設定、插件或者模版 (完)