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
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Hong Kong WordPress Meetup
November 04, 2025
Technology
30
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
AI SEO 轉化革命:在 AI Overview 時代,如何從更少的流量中獲得更高的訂單轉化?
hkwp
0
12
AI 召喚師的奧義:WordPress 網站生成術 for HKOSCon 2026
hkwp
0
15
HKOSCon 2026 WordPress Sessions
hkwp
0
19
WordPress, Hugo and Astro – Pick the Best Open-Source CMS
hkwp
0
17
Hong Kong WordPress Meetup #97
hkwp
0
17
Can AI Help You Design Better WordPress Websites?
hkwp
0
10
Hong Kong WordPress Meetup #96
hkwp
0
23
Hong Kong WordPress Meetup #95
hkwp
0
25
Why Design Matters: First Impressions Count
hkwp
0
28
Other Decks in Technology
See All in Technology
【Gen-AX】20260530開催_JJUG CCC 2026 Spring
genax
0
410
Cloud Run のアップデート 触ってみる&紹介
gre212
0
300
「速く作る」から「正しく作る」へ ─ 生成AI時代の開発フロー改革の ロードマップと実行 ─
starfish719
0
7.1k
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
50k
ClearMLを活用した実験管理
sansantech
PRO
0
100
LLMと共に進化するプロセスを目指して
ymatsuwitter
7
1.9k
BigQuery の Cross-cloud Lakehouse への歩み
phaya72
2
550
探して_入れて_作って_使う_Agent_Skills___LT.pdf
peintangos
2
160
個人の発見を、組織の知恵に 〜生成AI活用を"探索"から"組織の仕組み"へ〜
kintotechdev
2
920
トークン数だけでは測れない — Claude Code 組織展開の効果検証から学んだこと
makikub
0
130
Sony_KMP_Journey_KotlinConf2026
sony
2
210
はじめてのDatadog
kairim0
0
270
Featured
See All Featured
Accessibility Awareness
sabderemane
1
130
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
210
Claude Code のすすめ
schroneko
67
220k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
440
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.1k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
160
BBQ
matthewcrist
89
10k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
430
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
130
Automating Front-end Workflow
addyosmani
1370
210k
Product Roadmaps are Hard
iamctodd
PRO
55
12k
How to build a perfect <img>
jonoalderson
1
5.6k
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 自動測試你的設定、插件或者模版 (完)