Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Hiroshi Urabe
17,761 views
WordPressで行う継続的インテグレーション入門編
WordCamp Tokyo 2015でのセッション資料です。
Engineering
◦
Read more
27
Save
Share
Embed
Embed presentation
Download
Downloaded 27 times
1
/ 106
2
/ 106
3
/ 106
4
/ 106
5
/ 106
6
/ 106
7
/ 106
8
/ 106
9
/ 106
10
/ 106
11
/ 106
12
/ 106
13
/ 106
14
/ 106
15
/ 106
16
/ 106
17
/ 106
18
/ 106
19
/ 106
20
/ 106
21
/ 106
22
/ 106
23
/ 106
24
/ 106
25
/ 106
26
/ 106
27
/ 106
28
/ 106
29
/ 106
30
/ 106
31
/ 106
32
/ 106
33
/ 106
34
/ 106
35
/ 106
36
/ 106
37
/ 106
38
/ 106
39
/ 106
40
/ 106
41
/ 106
42
/ 106
43
/ 106
44
/ 106
45
/ 106
46
/ 106
47
/ 106
48
/ 106
49
/ 106
50
/ 106
51
/ 106
52
/ 106
53
/ 106
54
/ 106
55
/ 106
56
/ 106
57
/ 106
58
/ 106
59
/ 106
60
/ 106
61
/ 106
62
/ 106
63
/ 106
64
/ 106
65
/ 106
66
/ 106
67
/ 106
68
/ 106
69
/ 106
70
/ 106
71
/ 106
72
/ 106
73
/ 106
74
/ 106
75
/ 106
76
/ 106
77
/ 106
78
/ 106
79
/ 106
80
/ 106
81
/ 106
82
/ 106
83
/ 106
84
/ 106
85
/ 106
86
/ 106
87
/ 106
88
/ 106
89
/ 106
90
/ 106
91
/ 106
92
/ 106
93
/ 106
94
/ 106
95
/ 106
96
/ 106
97
/ 106
98
/ 106
99
/ 106
100
/ 106
101
/ 106
102
/ 106
103
/ 106
104
/ 106
105
/ 106
106
/ 106
More Related Content
PDF
初心者でもすぐできる Wordpress バックアップのススメ
by
Seiichiro Mishiba
PDF
airyのご紹介
by
Teruaki Murakami
PDF
WordPressで行うシステム開発 WordCamp Tokyo 2015用
by
Satoshi Kamigaki
PDF
「なんとなく」の壁を越えよう! 〜自信を持ってWordPressを選択するためのヒント〜
by
Naoko Takano
PDF
WordPress tokyo2015 - 公式プラグインでお金を稼ぐことができるか?
by
Masahiro Nakashima
PDF
レスポンシブ・イメージのWordPressへの実装と4.4
by
Toru Miki
PDF
WP REST API の活用事例と今後
by
Yuusuke Yoshida
PPTX
var dumpを使わないWordPress開発フロー
by
優也 田島
初心者でもすぐできる Wordpress バックアップのススメ
by
Seiichiro Mishiba
airyのご紹介
by
Teruaki Murakami
WordPressで行うシステム開発 WordCamp Tokyo 2015用
by
Satoshi Kamigaki
「なんとなく」の壁を越えよう! 〜自信を持ってWordPressを選択するためのヒント〜
by
Naoko Takano
WordPress tokyo2015 - 公式プラグインでお金を稼ぐことができるか?
by
Masahiro Nakashima
レスポンシブ・イメージのWordPressへの実装と4.4
by
Toru Miki
WP REST API の活用事例と今後
by
Yuusuke Yoshida
var dumpを使わないWordPress開発フロー
by
優也 田島
What's hot
PDF
愛があれば発信できる!WordPressで作る焼き鳥ポータルサイト~公式テーマ・プラグインと子テーマの活用~|WordCamp Tokyo 2015
by
Yoshinori Kobayashi
PDF
コミュニティ立ち上げのときに本当にあった恐い話
by
Mio Konagaya
PDF
WordCampKansai 2015 公式ディレクトリへの テーマ掲載とビジネスモデル
by
Hidekazu Ishikawa
PPTX
WordCamp Kansai 2015 - 京都大学における WordPress を利用した多言語情報発信と管理運用 #wck2015
by
Kitani Kimiya
PDF
マルチパブリッシング プラットフォームとしてのWordPress
by
文樹 高橋
PDF
Word pressはじめの一歩 テーマ作成ハンズオン
by
Hidetaka Okamoto
PDF
Learning from theme review requirements
by
Shinichi Nishikawa
PPTX
WordCamp Kansai 2015 ハンズオン - 踏み出してみよう!翻訳の第一歩 #wck2015
by
Kitani Kimiya
PDF
WordPress公式ディレクトリにテーマを登録しよう #wctokyo
by
Hidekazu Ishikawa
PDF
_s + bootstrapで始めるWordPressテーマ開発入門
by
Hidetaka Okamoto
PDF
WorcCamp Kansai 2015 LT大会
by
Koji Asaga
PDF
WordCamp Tokyo 2015 リアルフォーラム
by
Hajime Ogushi
PDF
WordCamp Kansai 2015 プレイベント「コントリビューターデイ」
by
Ayaka Sumida
PPTX
WordCamp Kansai 2015 発表資料
by
Masahito Muratake
PDF
まだタスクランナー使っていないって本当(マジ)? 仕事に対する効率化意識向上のための gulp ハンズオン : Wordcamp tokyo 2015
by
Hiromu Hasegawa
PDF
『ライターと制作者のメディアの作り方』WordCamp Tokyo2015
by
Hiroki Saiki
PPTX
CMS の現場から - WordPress と concrete5
by
Katz Ueno
PDF
今、WordPress を使う理由
by
Naoko Takano
PDF
ウェブ制作者のためのセルフブランディング
by
Hidekazu Ishikawa
PDF
WordPressで行う継続的インテグレーションのススメ
by
horike37
愛があれば発信できる!WordPressで作る焼き鳥ポータルサイト~公式テーマ・プラグインと子テーマの活用~|WordCamp Tokyo 2015
by
Yoshinori Kobayashi
コミュニティ立ち上げのときに本当にあった恐い話
by
Mio Konagaya
WordCampKansai 2015 公式ディレクトリへの テーマ掲載とビジネスモデル
by
Hidekazu Ishikawa
WordCamp Kansai 2015 - 京都大学における WordPress を利用した多言語情報発信と管理運用 #wck2015
by
Kitani Kimiya
マルチパブリッシング プラットフォームとしてのWordPress
by
文樹 高橋
Word pressはじめの一歩 テーマ作成ハンズオン
by
Hidetaka Okamoto
Learning from theme review requirements
by
Shinichi Nishikawa
WordCamp Kansai 2015 ハンズオン - 踏み出してみよう!翻訳の第一歩 #wck2015
by
Kitani Kimiya
WordPress公式ディレクトリにテーマを登録しよう #wctokyo
by
Hidekazu Ishikawa
_s + bootstrapで始めるWordPressテーマ開発入門
by
Hidetaka Okamoto
WorcCamp Kansai 2015 LT大会
by
Koji Asaga
WordCamp Tokyo 2015 リアルフォーラム
by
Hajime Ogushi
WordCamp Kansai 2015 プレイベント「コントリビューターデイ」
by
Ayaka Sumida
WordCamp Kansai 2015 発表資料
by
Masahito Muratake
まだタスクランナー使っていないって本当(マジ)? 仕事に対する効率化意識向上のための gulp ハンズオン : Wordcamp tokyo 2015
by
Hiromu Hasegawa
『ライターと制作者のメディアの作り方』WordCamp Tokyo2015
by
Hiroki Saiki
CMS の現場から - WordPress と concrete5
by
Katz Ueno
今、WordPress を使う理由
by
Naoko Takano
ウェブ制作者のためのセルフブランディング
by
Hidekazu Ishikawa
WordPressで行う継続的インテグレーションのススメ
by
horike37
Viewers also liked
PDF
Ultrafast WordPress Virtual Word camp2015
by
Yuta Sakamoto
PDF
WordCamp2015 LT WordPress+VPSでつくられたWebサイトのセキュリティチェックポイントとWordPressの「Waltiプラグイ...
by
Masanori Fujisaki
PDF
WordPress 使いのためのMicrosoft Azure 超入門
by
Masaki Takeda
PPTX
The Best Practices of Making WordPress Site Multilingual
by
Katz Ueno
PDF
WordPressと離島での図書館作り〜コントリビュートすることで働き方を選択する未来へ
by
Junko Nukaga
PPTX
Hands on PhotoBlog App with WordPress REST API and App Inventor
by
Hong Chen
PDF
Wpct2015 lt miku_endo
by
miku3939
PPTX
Webサイトをめぐるセキュリティ状況と効果的な防御方法(WordPress編)
by
Hiroshi Tokumaru
PDF
拡散欲しいよね!WordPressでプラグインを使わずにOGPを設定してみた
by
Yoshihiko Yoshida
PDF
モブログのすすめ – スマホを活用すれば読まれるWordPressが作れる in WordCamp 2015 Tokyo
by
isloop @wayohoo.com
PDF
中級アフィリエイターの実際 @WordCampTokyo2015
by
Kazuo Dobashi
PPTX
まだタスクランナー使っていないって本当(マジ)? 仕事に対する効率化意識向上のための gulp ハンズオン
by
tecking
PDF
YARAIYA! Opendata with WordPress
by
Hidetaka Okamoto
PDF
WordPress + Docker - Reusable WordPress development environments
by
Jordan West
PDF
What's new in WordPress 4.4 (For Demo)
by
Daisuke Takahashi
PDF
Why We Should Choose Free Plugins
by
Takayuki Miyoshi
PDF
WordCampでWordPressとWordPoliceのお話
by
Atsufumi Yoshikawa
Ultrafast WordPress Virtual Word camp2015
by
Yuta Sakamoto
WordCamp2015 LT WordPress+VPSでつくられたWebサイトのセキュリティチェックポイントとWordPressの「Waltiプラグイ...
by
Masanori Fujisaki
WordPress 使いのためのMicrosoft Azure 超入門
by
Masaki Takeda
The Best Practices of Making WordPress Site Multilingual
by
Katz Ueno
WordPressと離島での図書館作り〜コントリビュートすることで働き方を選択する未来へ
by
Junko Nukaga
Hands on PhotoBlog App with WordPress REST API and App Inventor
by
Hong Chen
Wpct2015 lt miku_endo
by
miku3939
Webサイトをめぐるセキュリティ状況と効果的な防御方法(WordPress編)
by
Hiroshi Tokumaru
拡散欲しいよね!WordPressでプラグインを使わずにOGPを設定してみた
by
Yoshihiko Yoshida
モブログのすすめ – スマホを活用すれば読まれるWordPressが作れる in WordCamp 2015 Tokyo
by
isloop @wayohoo.com
中級アフィリエイターの実際 @WordCampTokyo2015
by
Kazuo Dobashi
まだタスクランナー使っていないって本当(マジ)? 仕事に対する効率化意識向上のための gulp ハンズオン
by
tecking
YARAIYA! Opendata with WordPress
by
Hidetaka Okamoto
WordPress + Docker - Reusable WordPress development environments
by
Jordan West
What's new in WordPress 4.4 (For Demo)
by
Daisuke Takahashi
Why We Should Choose Free Plugins
by
Takayuki Miyoshi
WordCampでWordPressとWordPoliceのお話
by
Atsufumi Yoshikawa
Similar to WordPressで行う継続的インテグレーション入門編
PDF
WordCamp Kansai 2015 CI ハンズオン
by
タカシ キタジマ
PDF
WordPressプラグイン開発で学ぶ継続インテグレーション(CI)
by
Seto Takahiro
PDF
Php勉強会資料20090629
by
Takako Miyagawa
PPTX
WordPressエンジニアになって2ヶ月後にしたスキルアップの方法
by
Kasumi Ogawa
PDF
CodeIgniter東京勉強会 2011.05.14
by
Takako Miyagawa
PDF
WordBench Nagoya 2015年3月勉強会
by
Kei Nomura
PDF
Word bench7月号
by
西村 州平
PDF
WordCampOsaka2012 WordPressあるある
by
Takashi Uemura
PDF
WordPress を使いこなそう
by
Wataru OKAMOTO
PDF
WordPressのオススメスライドとか記事とか集めました。(2012.10.13 WordBench神戸)
by
Takashi Uemura
PDF
12 総合演習Word Pressの利用
by
文樹 高橋
PDF
WP-CLIとWordPress公式ディレクトリを活用した爆速サイト構築術 ーインストールからデザイン、ページ作成までを10分でー
by
タカシ キタジマ
PDF
テーマ制作時の疑問とノンプログラマーにも優しいテーマを考える
by
Tsuyoshi.
PDF
4時間まったりWordPressテーマ作成講座
by
Shinichi Nishikawa
PDF
20091209 Phpstudy
by
Yusuke Ando
KEY
WordPress中級者への道!テンプレートタグはどう動くのか!?
by
Shinichi Nishikawa
PDF
Code igniterでテスト駆動開発 資料作成中
by
Takako Miyagawa
PDF
世界標準ブログツール WordPressの最新版3.0と豊富なプラグイン
by
tamotsu toyoda
PDF
Webデザイナーが使うバージョン管理ツール(20150205 Web業界なんでも勉強会)
by
Tsukasa Nagata
PDF
2014 01-11-tdc-6th-anniversary
by
Chieko Aihara
WordCamp Kansai 2015 CI ハンズオン
by
タカシ キタジマ
WordPressプラグイン開発で学ぶ継続インテグレーション(CI)
by
Seto Takahiro
Php勉強会資料20090629
by
Takako Miyagawa
WordPressエンジニアになって2ヶ月後にしたスキルアップの方法
by
Kasumi Ogawa
CodeIgniter東京勉強会 2011.05.14
by
Takako Miyagawa
WordBench Nagoya 2015年3月勉強会
by
Kei Nomura
Word bench7月号
by
西村 州平
WordCampOsaka2012 WordPressあるある
by
Takashi Uemura
WordPress を使いこなそう
by
Wataru OKAMOTO
WordPressのオススメスライドとか記事とか集めました。(2012.10.13 WordBench神戸)
by
Takashi Uemura
12 総合演習Word Pressの利用
by
文樹 高橋
WP-CLIとWordPress公式ディレクトリを活用した爆速サイト構築術 ーインストールからデザイン、ページ作成までを10分でー
by
タカシ キタジマ
テーマ制作時の疑問とノンプログラマーにも優しいテーマを考える
by
Tsuyoshi.
4時間まったりWordPressテーマ作成講座
by
Shinichi Nishikawa
20091209 Phpstudy
by
Yusuke Ando
WordPress中級者への道!テンプレートタグはどう動くのか!?
by
Shinichi Nishikawa
Code igniterでテスト駆動開発 資料作成中
by
Takako Miyagawa
世界標準ブログツール WordPressの最新版3.0と豊富なプラグイン
by
tamotsu toyoda
Webデザイナーが使うバージョン管理ツール(20150205 Web業界なんでも勉強会)
by
Tsukasa Nagata
2014 01-11-tdc-6th-anniversary
by
Chieko Aihara
More from Hiroshi Urabe
PDF
JSのお勉強の話。
by
Hiroshi Urabe
PDF
まだ間に合う「CSS設計」ことはじめ。CSSの闇に飲み込まれないための考え方。
by
Hiroshi Urabe
PDF
カスタムフィールドの光と闇。 または、愛について。
by
Hiroshi Urabe
PDF
使いやすいWordPressのためのCSSのつくりかた
by
Hiroshi Urabe
PDF
自分のWordPressのブログをリニューアルした話
by
Hiroshi Urabe
PDF
カスタム投稿タイプ&カスタムタクソノミーの使い方 #wbNagano
by
Hiroshi Urabe
JSのお勉強の話。
by
Hiroshi Urabe
まだ間に合う「CSS設計」ことはじめ。CSSの闇に飲み込まれないための考え方。
by
Hiroshi Urabe
カスタムフィールドの光と闇。 または、愛について。
by
Hiroshi Urabe
使いやすいWordPressのためのCSSのつくりかた
by
Hiroshi Urabe
自分のWordPressのブログをリニューアルした話
by
Hiroshi Urabe
カスタム投稿タイプ&カスタムタクソノミーの使い方 #wbNagano
by
Hiroshi Urabe
WordPressで行う継続的インテグレーション入門編
1.
WordPressで行う 継続的インテグレーション入門編 -私がプラグイン開発・保守地獄から学んだこと- 2015.10.31 @WordCamp Tokyo
2015 WordPressで行うCI入門編 1
2.
whoami じこしょうかい 2015.10.31 @WordCamp Tokyo
2015 WordPressで行うCI入門編 2
3.
Toro_Unit 占部 紘 (うらべ
ひろし) 長野県松本市在住 Frontend Engineer / Plugin Developer / Web Designer Github: @torounit Twitter: @Toro_Unit Facebook: fb.me/torounit Blog: http://www.torounit.com 2015.10.31 @WordCamp Tokyo 2015 WordPressで行うCI入門編 3
4.
Profile • 福島県郡山市生まれ。 • 群馬県太田市育ち。 •
長野県松本市9年目。 • にじゅうろくさい。 source: https://commons.wikimedia.org/wiki/ File:Gunma- NaganoPrefecturalRoad11202.jpg 2015.10.31 @WordCamp Tokyo 2015 WordPressで行うCI入門編 4
5.
WordPressとの関わり 2015.10.31 @WordCamp Tokyo
2015 WordPressで行うCI入門編 5
6.
WordPress 4.3 Core Contributer 4.4でも引き続きコアコントリビューターの予定 2015.10.31
@WordCamp Tokyo 2015 WordPressで行うCI入門編 6
7.
Other Project • Plugin
Development • WordCamp Kansai 2015 Speaker Contribution WP-CLI (v0.20.2) / VCCW / Some Plugin. 2015.10.31 @WordCamp Tokyo 2015 WordPressで行うCI入門編 7
8.
Plugins • Custom Post
Type Permalinks • Simple Post Type Permalinks • Powerful Posts Per Page • RS CSV Importer Media Add-On • etc... 2015.10.31 @WordCamp Tokyo 2015 WordPressで行うCI入門編 8
9.
Custom Post Type Permalinks 2015.10.31
@WordCamp Tokyo 2015 WordPressで行うCI入門編 9
10.
主にこのプラグインの開発/保守の 経験から学んだことをお話しします。 2015.10.31 @WordCamp Tokyo
2015 WordPressで行うCI入門編 10
11.
Custom Post Type
Permalinks • カスタム投稿タイプのパーマリンクを管理画面から設定でき るようにするプラグイン。 • 2011.11.02リリース。ちょうど丸4年! • Active install: 50,000+ • Downloads: 160,000+ 2015.10.31 @WordCamp Tokyo 2015 WordPressで行うCI入門編 11
12.
実は、初めて作ったプラグイン。 2015.10.31 @WordCamp Tokyo
2015 WordPressで行うCI入門編 12
13.
プラグイン界のシンデレラボーイ!! 2015.10.31 @WordCamp Tokyo
2015 WordPressで行うCI入門編 13
14.
そんな4年前のToro_Unitは どんなだったか 2015.10.31 @WordCamp Tokyo
2015 WordPressで行うCI入門編 14
15.
• ==と===の違い? • Class? •
オブジェクト指向? • デザインパターン? • 副作用? 破壊的操作? • interfaceって何のために存在してるの? 2015.10.31 @WordCamp Tokyo 2015 WordPressで行うCI入門編 15
16.
つまりコピペプログラマー スパゲッティなクソコードを毎日生産する日々 2015.10.31 @WordCamp Tokyo
2015 WordPressで行うCI入門編 16
17.
WordPressとかそういうレベルの問題じゃ無い。 そもそもPHPのド基礎すらよくわかってない状態。 2015.10.31 @WordCamp Tokyo
2015 WordPressで行うCI入門編 17
18.
要望と言う名のおしかりを受ける始末 2015.10.31 @WordCamp Tokyo
2015 WordPressで行うCI入門編 18
19.
デバッグモードで検証しろ! Noticeでてる! エスケープしろ! 2015.10.31 @WordCamp Tokyo
2015 WordPressで行うCI入門編 19
20.
いろいろつらい! 2015.10.31 @WordCamp Tokyo
2015 WordPressで行うCI入門編 20
21.
しかし 2015.10.31 @WordCamp Tokyo
2015 WordPressで行うCI入門編 21
22.
なぜか信じられないペースで ダウンロード数が伸び始める 当時はWordPress3.2。たまたま時代の波に乗ってしまった。 2015.10.31 @WordCamp Tokyo
2015 WordPressで行うCI入門編 22
23.
次々やってくるバグレポートと要望 今思えば地獄の始まり 2015.10.31 @WordCamp Tokyo
2015 WordPressで行うCI入門編 23
24.
• コメントのパーマリンクが動かない! • 添付ファイルのURLがおかしい! •
カスタムタクソノミー使えるようにして! • カテゴリーに対応させて! • etc... 2015.10.31 @WordCamp Tokyo 2015 WordPressで行うCI入門編 24
25.
バグを直した! 2015.10.31 @WordCamp Tokyo
2015 WordPressで行うCI入門編 25
26.
(`・ω・´) シャキーン 2015.10.31 @WordCamp
Tokyo 2015 WordPressで行うCI入門編 26
27.
と思ったら 2015.10.31 @WordCamp Tokyo
2015 WordPressで行うCI入門編 27
28.
別のところがバグって動かない! 2015.10.31 @WordCamp Tokyo
2015 WordPressで行うCI入門編 28
29.
Σ (゚Д゚;) 2015.10.31 @WordCamp
Tokyo 2015 WordPressで行うCI入門編 29
30.
バグを直すとなぜかバグが増殖! 2015.10.31 @WordCamp Tokyo
2015 WordPressで行うCI入門編 30
31.
機能を追加してももちろんバグる! 2015.10.31 @WordCamp Tokyo
2015 WordPressで行うCI入門編 31
32.
まさに地獄!!! 2015.10.31 @WordCamp Tokyo
2015 WordPressで行うCI入門編 32
33.
そんな私の昔の開発手法 1年半前くらいまで 2015.10.31 @WordCamp Tokyo
2015 WordPressで行うCI入門編 33
34.
1. コードを書く 2. パーマリンクを更新 3.
ブラウザで何十ページのパターンにアクセスして確認 投稿ページ・アーカイブ・子ページ・コメントのパーマリン ク・添付ファイル....etc.」x いろんな設定のカスタム投稿タイプ とかタクソノミーとか... 2015.10.31 @WordCamp Tokyo 2015 WordPressで行うCI入門編 34
35.
開発時間の7割がブラウザでのテスト... 2015.10.31 @WordCamp Tokyo
2015 WordPressで行うCI入門編 35
36.
• そんなにまとまった開発の時間はとれない。 • やりかけで放置して寝るとだいたい解らなくなってる。 •
毎度毎度やってらんないので、たまにやると壊れてる。け ど、原因不明。 • とりあえずロールバック。サヨナラしたコードは数知れず。 2015.10.31 @WordCamp Tokyo 2015 WordPressで行うCI入門編 36
37.
リリース後にバグが見つかり徹夜で バグフィックスすることも恒例行事 ごめんなさい。 2015.10.31 @WordCamp Tokyo
2015 WordPressで行うCI入門編 37
38.
こんなのやってられるか!!! いやほんとすみません 2015.10.31 @WordCamp Tokyo
2015 WordPressで行うCI入門編 38
39.
なんとかならんかね... 毎回ごめんなさいしながらアップデートするのつらい 2015.10.31 @WordCamp Tokyo
2015 WordPressで行うCI入門編 39
40.
さてどうしよう。 2015.10.31 @WordCamp Tokyo
2015 WordPressで行うCI入門編 40
41.
ようやく本編 2015.10.31 @WordCamp Tokyo
2015 WordPressで行うCI入門編 41
42.
CI=継続的インテグレーションとは? 2015.10.31 @WordCamp Tokyo
2015 WordPressで行うCI入門編 42
43.
ソフトウェア作成時の品質改善や納期の短縮のための習慣のこと 2015.10.31 @WordCamp Tokyo
2015 WordPressで行うCI入門編 43
44.
具体的には... • プログラムによるテスト • テスト駆動開発 •
テスト自動化 • 自動デプロイ / ビルド自動化 • etc... 2015.10.31 @WordCamp Tokyo 2015 WordPressで行うCI入門編 44
45.
プラグイン開発でやっていること • ブラウザ上でのテストをやめてプログラムでテスト • テスト駆動開発 •
Travis-CIでテストを自動化 2015.10.31 @WordCamp Tokyo 2015 WordPressで行うCI入門編 45
46.
これで地獄からおさらばしました! 2015.10.31 @WordCamp Tokyo
2015 WordPressで行うCI入門編 46
47.
1.WordPressでのテスト コードの書き方 2015.10.31 @WordCamp Tokyo
2015 WordPressで行うCI入門編 47
48.
実例:カスタム投稿タイプの記事ペー ジにアクセス出来ているかのテスト。 2015.10.31 @WordCamp Tokyo
2015 WordPressで行うCI入門編 48
49.
ブラウザでテストしていたこと 1. 適当なカスタム投稿タイプを作成。 2. 投稿を作成。 3.
アクセスして正しく投稿ページにアクセスできるかを確認。 (個別投稿ページにアクセスできているか、目的のページに到 達できているか) 2015.10.31 @WordCamp Tokyo 2015 WordPressで行うCI入門編 49
50.
これをテストコードにするとこうなる 2015.10.31 @WordCamp Tokyo
2015 WordPressで行うCI入門編 50
51.
class SampleTest extends
WP_UnitTestCase { public function test_permalink() { register_post_type('hoge'); /*カスタム投稿タイプhogeの投稿を作成。*/ $args = array( 'post_type' => 'hoge' ); $id = $this->factory->post->create( $args ); /*WordPressを投稿にアクセスした状態に*/ $this->go_to( get_permalink( $id ) ); //is_single(), is_singular()のみがtrueなら合格。 $this->assertQueryTrue( 'is_singular', 'is_single' ); //生成した記事のIDと、URLから調べたIDが一致するかどうか $post_id = url_to_postid( get_permalink( $id ) ); $this->assertEquals( $id, $post_id ); } } 2015.10.31 @WordCamp Tokyo 2015 WordPressで行うCI入門編 51
52.
細かい解説は後ほどしますが、 基本的には、ブラウザでやっていたことを そのままコードとして記述していくだけ。 2015.10.31 @WordCamp Tokyo
2015 WordPressで行うCI入門編 52
53.
だまされたと思ってやってみると そこまで難しくない! 2015.10.31 @WordCamp Tokyo
2015 WordPressで行うCI入門編 53
54.
確認だけで一日仕事だったものが... 2015.10.31 @WordCamp Tokyo
2015 WordPressで行うCI入門編 54
55.
30秒足らずで終了!! 2015.10.31 @WordCamp Tokyo
2015 WordPressで行うCI入門編 55
56.
革命起きた! 2015.10.31 @WordCamp Tokyo
2015 WordPressで行うCI入門編 56
57.
ちょっとやってみたくなってきた? 2015.10.31 @WordCamp Tokyo
2015 WordPressで行うCI入門編 57
58.
じゃぁどうやってはじめればいいの? 2015.10.31 @WordCamp Tokyo
2015 WordPressで行うCI入門編 58
59.
1-1.PHPUnit & WP_UnitTestCaseを使う! 2015.10.31
@WordCamp Tokyo 2015 WordPressで行うCI入門編 59
60.
PHPUnit https://phpunit.de/ • PHPの定番テストフレームワーク。WordPressの本体も PHPUnitでテストしてる。 • 日本語マニュアルが結構しっかりしてる。 https://phpunit.de/manual/3.7/ja/ 2015.10.31
@WordCamp Tokyo 2015 WordPressで行うCI入門編 60
61.
アサーション 答え合わせメソッド。assertEquals($a, $b)だったら$aと$b が一致したらOK、別のものならNG!とか。これがわかればテス トがとりあえず書ける。 アノテーション テストコードへのコメント。テストを分別したり、テストの環 境を設定したり出来る。 2015.10.31 @WordCamp
Tokyo 2015 WordPressで行うCI入門編 61
62.
この2つがわかればなんとかなる! マニュアル見ればだいたい書いてある。 2015.10.31 @WordCamp Tokyo
2015 WordPressで行うCI入門編 62
63.
テストの書き方の例 function add( $x,
$y ) { return $x + $y; } class SampleTest extends PHPUnit_Framework_TestCase { public function test_add() { $answer = add( 1, 2 ); $this->assertEquals( $answer, 3 ); } } 2015.10.31 @WordCamp Tokyo 2015 WordPressで行うCI入門編 63
64.
WP_UnitTestCaseとは... WordPressのコアで使われているテストコード。 PHPUnitにWordPress用の便利機能を多数搭載したもの。 • 記事・カテゴリー・ユーザー・マルチサイトのブログなどを 簡単に作れる!しかもダミーデータも突っ込んでくれる! • WordPressの用のアサーション等もあって便利! 2015.10.31
@WordCamp Tokyo 2015 WordPressで行うCI入門編 64
65.
さっきのテストコードをもう一度 2015.10.31 @WordCamp Tokyo
2015 WordPressで行うCI入門編 65
66.
class SampleTest extends
WP_UnitTestCase { public function test_permalink() { register_post_type( 'hoge' ); /*カスタム投稿タイプhogeの投稿を作成。*/ $args = array( 'post_type' => 'hoge' ); $id = $this->factory->post->create( $args ); /*WordPressを投稿にアクセスした状態に*/ $this->go_to( get_permalink( $id ) ); //is_single(), is_singular()のみがtrueなら合格。 $this->assertQueryTrue( 'is_singular', 'is_single' ); //生成した記事のIDと、URLから調べたIDが一致するかどうか $post_id = url_to_postid( get_permalink( $id ) ); $this->assertEquals( $id, $post_id ); } } 2015.10.31 @WordCamp Tokyo 2015 WordPressで行うCI入門編 66
67.
例:ショートコードのテスト 2015.10.31 @WordCamp Tokyo
2015 WordPressで行うCI入門編 67
68.
ショートコードの仕様 • [greeting language="japanese"]
で こんにちは と 表示 • [greeting language="english"] で hello と表示 http://www.slideshare.net/inc2734/word-campkansai2015-ci 2015.10.31 @WordCamp Tokyo 2015 WordPressで行うCI入門編 68
69.
class SampleTest extends
WP_UnitTestCase { public function test_languageがjapaneseならこんにちは() { $greeting = do_shortcode( '[greeting language="japanese"]' ); $this->assertEquals( 'こんにちは', $greeting ); } public function test_languageがenglishならhello() { $greeting = do_shortcode( '[greeting language="english"]' ); $this->assertEquals( 'hello', $greeting ); } } 2015.10.31 @WordCamp Tokyo 2015 WordPressで行うCI入門編 69
70.
意外に簡単!!! ですよね...? 2015.10.31 @WordCamp Tokyo
2015 WordPressで行うCI入門編 70
71.
でも 2015.10.31 @WordCamp Tokyo
2015 WordPressで行うCI入門編 71
72.
PHPUnitの設定とかちょっとよくわからない。 2015.10.31 @WordCamp Tokyo
2015 WordPressで行うCI入門編 72
73.
WP-CLI使え!!! 2015.10.31 @WordCamp Tokyo
2015 WordPressで行うCI入門編 73
74.
WP-CLIでプラグインのひな形を作ると $ wp scaffold
plugin <プラグイン名> 2015.10.31 @WordCamp Tokyo 2015 WordPressで行うCI入門編 74
75.
2015.10.31 @WordCamp Tokyo
2015 WordPressで行うCI入門編 75
76.
テストに必要なものが準備済み! 2015.10.31 @WordCamp Tokyo
2015 WordPressで行うCI入門編 76
77.
プラグインのディレクトリに移動して、 phpunitを実行するだけ。 $ cd ./wp-content/plugins/plugin-name/ $
phpunit //テスト実行! 2015.10.31 @WordCamp Tokyo 2015 WordPressで行うCI入門編 77
78.
既存のプラグインにテストだけ生成も出来る! $ wp scaffold
plugin-tests <プラグイン名> 2015.10.31 @WordCamp Tokyo 2015 WordPressで行うCI入門編 78
79.
でも。。。 2015.10.31 @WordCamp Tokyo
2015 WordPressで行うCI入門編 79
80.
• WP-CLIとかPHPUnitとかインストール面倒... • ローカルでWordPressの動作環境も立てなきゃ... •
特にWindowsだとだるい! 2015.10.31 @WordCamp Tokyo 2015 WordPressで行うCI入門編 80
81.
VCCW使おう!! 2015.10.31 @WordCamp Tokyo
2015 WordPressで行うCI入門編 81
82.
VCCW • http://vccw.cc • 宮内さんが開発してる
Vagrant環境。立ち上げるだけで、 WordPressがインストール済みの仮想マシンが手に入る。最 近俺も巻き込まれた。 • WP-CLIもPHPUnitも全部入り! • プラグイン開発に必要な環境がすべて手に入る! 2015.10.31 @WordCamp Tokyo 2015 WordPressで行うCI入門編 82
83.
1-2.WordPressの本体のテストもよも 2015.10.31 @WordCamp Tokyo
2015 WordPressで行うCI入門編 83
84.
• 実際に動くものを読んでいくのが一番わかりやすい。 • 自分のプラグインの扱っている分野のテストコードは自分の プラグインにも取り入れやすい。半分くらいパクってます。 •
一度やってみると、だんだん理解が深まってきて他のテスト も読み書き出来るようになってくるよ!!! 2015.10.31 @WordCamp Tokyo 2015 WordPressで行うCI入門編 84
85.
テストの書き方が何となく解ってくる はず! いろいろ書いてみよう! とりあえず自分の作ったプラグインとかにテストを足してみる とか、簡単なプラグインを作ってみるとか。 2015.10.31 @WordCamp
Tokyo 2015 WordPressで行うCI入門編 85
86.
2.テスト駆動開発するべし 2015.10.31 @WordCamp Tokyo
2015 WordPressで行うCI入門編 86
87.
そもそもテストとは。 プログラムが正しい動作をするかどうか確認するためのもの。 言い換えると、プログラムが仕様に適合した動作を行うかどう かのチェック。 ちゃんと書けば、生きた仕様書になる。 • 英語読めなくてもPHP読めれば仕様が解る!!! 2015.10.31 @WordCamp
Tokyo 2015 WordPressで行うCI入門編 87
88.
個人的な理解 • 仕様 =
問題文 • 実装 = 回答 • テスト = 答え合わせ 2015.10.31 @WordCamp Tokyo 2015 WordPressで行うCI入門編 88
89.
回答に合わせて問題文を 決めたらダメですよね。 あくまで理想論ですよ。理想論。(震え声) 2015.10.31 @WordCamp Tokyo
2015 WordPressで行うCI入門編 89
90.
テスト駆動開発をするメリット 2015.10.31 @WordCamp Tokyo
2015 WordPressで行うCI入門編 90
91.
• コードが変わってもテストが通れば、最低限の動作保証にな る。 • テストを後付けすると、実装に合わせたテストを書きがち。 •
ノリでコードを書き始めるより、ノリでテストを書く方が、 仕様が定まる。設計をしっかりやるようになる。自分のやり たいこと、作りたいものがはっきり定まる。 • 仕様書を書くよりは、テストコードを書く方が絶対楽しい。 2015.10.31 @WordCamp Tokyo 2015 WordPressで行うCI入門編 91
92.
3.テスト自動化するべし 2015.10.31 @WordCamp Tokyo
2015 WordPressで行うCI入門編 92
93.
ここまで散々テストやれとか言ってきたけど 2015.10.31 @WordCamp Tokyo
2015 WordPressで行うCI入門編 93
94.
毎度毎度実行するのがかったるい 2015.10.31 @WordCamp Tokyo
2015 WordPressで行うCI入門編 94
95.
めんどくさいものは大抵やり忘れる 2015.10.31 @WordCamp Tokyo
2015 WordPressで行うCI入門編 95
96.
自動化しよう! • Githubで折角作ってるんだから、小幅な修正はブラウザから やりたいときもある。 • Pull
Request貰うのはとてもありがたいけど、いちいちクロ ーンしてテストとかするのかったるい。 コミットを監視してテストを自動実行してくれる サーバー(CIサーバー)欲しい!! 2015.10.31 @WordCamp Tokyo 2015 WordPressで行うCI入門編 96
97.
Travis CIを使おう! 2015.10.31 @WordCamp
Tokyo 2015 WordPressで行うCI入門編 97
98.
Travis CIとは • Gitのコミットを監視して、設定ファイル(.travis.yml)に書 かれている内容でテストやビルドやデプロイなどを実行でき るWEBサービス。 •
Githubとの連携が簡単! プルリクエストにも実行してくれる しその結果もGithubの画面で見れる! しかもOSSならタダ! • 類似サービスにCircle-CIってのもある。 2015.10.31 @WordCamp Tokyo 2015 WordPressで行うCI入門編 98
99.
Travis CIでやるメリット • WP-CLIで.travis.ymlのひな形も生成してくれる。 •
複数の環境でのテストが簡単に実行できる。WordPressの4.0 以降のバージョンでそれぞれPHP5.3以上の全てのバージョン で実行とかやれる。 • HHVMも選択できる。 2015.10.31 @WordCamp Tokyo 2015 WordPressで行うCI入門編 99
100.
まとめ 2015.10.31 @WordCamp Tokyo
2015 WordPressで行うCI入門編 100
101.
• WordPressのテストは、PHPUnitとWordPressのコアのテスト ケースを使うのが便利。 • WP-CLIでひな形作ればだいたいOK. •
環境構築面倒ならVCCW使っとけば良いよ! • テスト駆動開発するべし! • Travis CIはホントに便利! 2015.10.31 @WordCamp Tokyo 2015 WordPressで行うCI入門編 101
102.
とりあえず、少しずつ始めてみよう。 2015.10.31 @WordCamp Tokyo
2015 WordPressで行うCI入門編 102
103.
拙くてもテストが無いよりはマシ! 2015.10.31 @WordCamp Tokyo
2015 WordPressで行うCI入門編 103
104.
よりよい WordPress Lifeを! 2015.10.31
@WordCamp Tokyo 2015 WordPressで行うCI入門編 104
105.
参考資料 • WordPressで行う継続的インテグレーションのススメ https://www.slideshare.net/horike37/wordpress-50908456 • WordCamp
Kansai 2015 CI ハンズオン http://www.slideshare.net/inc2734/word-campkansai2015- ci 2015.10.31 @WordCamp Tokyo 2015 WordPressで行うCI入門編 105
106.
おわり 2015.10.31 @WordCamp Tokyo
2015 WordPressで行うCI入門編 106
Download