Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
PhpStormとPHPUnitを連携してユニットテスト作成を楽にする ver.phpconsen / integrating-phpunit-with-a-phpstorm-ver-phpconsen
tenkoma (Koji Tanaka)
January 26, 2019
Technology
0
3.3k
PhpStormとPHPUnitを連携してユニットテスト作成を楽にする ver.phpconsen / integrating-phpunit-with-a-phpstorm-ver-phpconsen
2019/1/26 にPHPカンファレンス仙台2019でお話しするトークのスライドです。
tenkoma (Koji Tanaka)
January 26, 2019
Tweet
Share
More Decks by tenkoma (Koji Tanaka)
See All by tenkoma (Koji Tanaka)
PhpStormでコードを理解する技術 / How to use PhpStorm to understand the code
tenkoma_
0
2.6k
PhpStormとPHPUnitを 連携してユニットテスト 作成を楽にする / Integrating PHPUnit with a PhpStorm
tenkoma_
1
460
CakeFest 2019について / About CakeFest 2019
tenkoma_
0
3.4k
ユニットテストを書きやすくするためにテストスイートを拡張する / Extend test suite to make unit test easier to write
tenkoma_
0
2.1k
BASE の PHP アプリ アップデートについて
tenkoma_
0
3.7k
CircleCI 2.0 で CakePHP3 アプリのビルド
tenkoma_
0
1.6k
GitLab CI + Review Apps で簡易レビュー環境
tenkoma_
4
2.7k
CakePHP プロジェクトにプルリクを送り続けた僕は
tenkoma_
0
530
Webpack勉強会 JavaScriptビルド編
tenkoma_
1
1.6k
Other Decks in Technology
See All in Technology
What's new in Vision
satotakeshi
0
220
Data in Google I/O - IO Extended GDG Seoul
kennethanceyer
0
160
Rethinking how distributed applications are built
tillrohrmann
0
110
約6年間運用したシステムをKubernetesに完全移行するまで/Kubernetes Novice Tokyo
isaoshimizu
6
930
プログラマがオブジェクト指向しても幸せになれない理由
shirayanagiryuji
0
160
DOM Invader - prototype pollution対応の衝撃 - / DOM Invader - prototype pollution
okuken
0
160
Autonomous Database Cloud 技術詳細 / adb-s_technical_detail_jp
oracle4engineer
PRO
10
18k
The application of formal methods in Kafka reliability engineering
line_developers
PRO
1
210
Modern Android dependency injection
hugovisser
1
130
Citizen 개발기
outsider
0
290
【SAP知らない人向け】SAP on AWS 個人学習メモ/sap-on-aws-study
emiki
3
2.4k
UIKitのアップデート #WWDC22
akatsuki174
4
350
Featured
See All Featured
Rebuilding a faster, lazier Slack
samanthasiow
62
7.2k
Building an army of robots
kneath
299
40k
The Cult of Friendly URLs
andyhume
68
4.8k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
105
16k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
12
920
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
349
27k
The Straight Up "How To Draw Better" Workshop
denniskardys
225
120k
Statistics for Hackers
jakevdp
781
210k
Documentation Writing (for coders)
carmenhchung
48
2.6k
Designing Experiences People Love
moore
130
22k
What’s in a name? Adding method to the madness
productmarketing
11
1.6k
Clear Off the Table
cherdarchuk
79
280k
Transcript
1IQ4UPSNͱ1)16OJUΛ ࿈ܞͯ͠Ϣχοτςετ ࡞Λָʹ͢Δ 1)1ΧϯϑΝϨϯεઋ ాத࣏!UFOLPNB
࠷ۙɺϢχοτςετ ॻ͚ͯ·͔͢ʁ
ςετॻ͍࣮ͯߦͷ܁Γฦ͠ ͕໘ͩͱࢥͬͨ͜ͱ ͋Γ·͔͢ʁ
1IQ4UPSNͱ1)16OJUΛ࿈ܞ ͢Δͱςετ࡞ָ͕ʹͳΓɺ ίʔυཧղ͘͢͠ͳΓ·͢ ࢼͯ͠Έ͍ͯͩ͘͞
ͪͳΈʹ 1IQ4UPSNΛ͍ͬͯΔํ !
͢Ͱʹ1)16OJUͱ࿈ܞͯ͠ ςετॻ͍ͯΔΑͱ͍͏ํ
͢͜ͱ w1)16OJUͱɺ1IQ4UPSN࿈ܞͱ w࿈ܞͰ͖ͯͳ͔ͬͨ։ൃڥ w࿈ܞͷઃఆ wϢχοτςετ࡞͕Ͳ͏ָʹͳΔ͔ σϞ͋Γ w❌Ϣχοτςετͷجຊతͳॻ͖ํ w❌1IQ4UPSNͷجຊతͳ͍ํ
ࣗݾհ wాத࣏ 5BOBLB,PKJ w!UFOLPNB (JU)VC 5XJUUFSʜ w#"4&גࣜձࣾ1SPEVDU%JWJTJPO #BDLFOE&OHJOFFS
ʙ w1)1$BLF1)1όʔδϣϯΞοϓɾϞόΠϧΞϓϦόοΫΤ ϯυ։ൃ wϢχοτςετͷ͢͠͞ɺ҆ఆੑͷվળ w$POUSJCVUFEUP$BLF1)1
1)16OJUͱ 1IQ4UPSN࿈ܞͱ
1)16OJU w 1)1ίʔυͷϢχοτςετΛॻͨ͘Ί ͷϑϨʔϜϫʔΫ w ଟ͘ͷ1)1ϥΠϒϥϦͰΘΕ͍ͯΔ w 8FCΞϓϦέʔγϣϯͷςετج൫ͱ͠ ͯΘΕΔ ˞େن1)1ϓϩδΣΫτͰ1)16OJUΛ̏ੈΞοϓάϨʔυ͢ΔͨΊʹͬͨ͜ͱ
IUUQTTQFBLFSEFDLDPNEROFPQIQVOJUVQHSBEFTUPSZ TMJEF Λࢀߟʹ͠·ͨ͠
1)16OJU WFOEPSCJOQIQVOJU ΞΠίϯը૾ IUUQTQJYBCBZDPNKBVTFSTNU[E ςετ࣮ߦ ςετ݁Ռ ࣮ߦ ݁ՌΛݕূ QIQVOJUίϚϯυ ͯ͢ύε
ͭҎ্ࣦഊ ςετέʔε ςετ͍ͨ͠ ΞϓϦέʔγϣϯ ίʔυ
1IQ4UPSN w 1IQ4UPSN1)1ΞϓϦέʔ γϣϯͷͨΊͷ౷߹։ൃڥ *%& w ΤσΟλɾσόοΨ࿈ܞɾ੩ తղੳɾόʔδϣϯཧFUD
1IQ4UPSNͱ࿈ܞ WFOEPSCJOQIQVOJU ίϚϯυ࣮ߦ ݁ՌΛऔಘͯ͠දࣔ ࿈ܞ͢Δ͜ͱͰɺ 1IQ4UPSN͔Βςετ ࣮ߦͰ͖Δ ςετέʔε ΞϓϦέʔγϣϯίʔυ
࿈ܞͰ͖ͯͳ͔ͬͨ։ൃڥ $BLF1)1ΞϓϦ
$BLF1)1ݻ༗ͷࣄ $BLF1)1 5FTU4IFMM ίϚϯυ࣮ߦ ݁ՌΛऔಘͯ͠දࣔ ςετέʔε ΞϓϦέʔγϣϯίʔυ w ςετ࣮ߦίϚϯ υ͕ΧελϚΠζ
͞Ε͍ͯΔ
ΤσΟλͰίʔυมߋ λʔϛφϧʹΓସ͑ͯςετ࣮ߦ ʜ܁Γฦ͠ʜ
ΤσΟλͰίʔυมߋ λʔϛφϧʹΓସ͑ͯςετ࣮ߦ ʜ܁Γฦ͠ʜ
ΤσΟλͰίʔυมߋ λʔϛφϧʹΓସ͑ͯςετ࣮ߦ ʜ܁Γฦ͠ʜ
ΤσΟλͰίʔυมߋ λʔϛφϧʹΓସ͑ͯςετ࣮ߦ ʜ܁Γฦ͠ʜ
গ͠1)1ίʔυΛՃͨ͠Β ࿈ܞͰ͖ͨͷͰϒϩάهࣄॻ͍ͨ IUUQTUFOLPNBIBUFOBCMPHDPNFOUSZ $BLF1)1ͰΞϓϦ։ൃͯ͠Δํࢀߟʹ
࿈ܞͷઃఆ
આ໌༻։ൃڥ EPDLFSDPNQPTF $BLF1)1ΞϓϦ w IUUQTHJUIVCDPN UFOLPNB DBLFQIQ@DNT w %PDLFSͰߏங w
$BLF1)1ެࣜͷνϡʔ τϦΞϧͰ࡞ͬͨ $BLFΞϓϦʹςετ ΛՃ
։ൃڥىಈ $ git clone https://github.com/ tenkoma/cakephp_cms.git $ cd cakephp_cms $
make $ make migrate w ઃఆલʹίϯςφΛىಈ͓ͯ͘͠ w 1IQ4UPSNͰDBLFQIQ@DNTϑΥϧμΛ։͘
1)1$-* 5FTU'SBNFXPSLT ͷઃఆ ˞͔͚Ͱઆ໌͠·͕͢ɺεΫϦʔϯγϣοτΛ ଟΊʹࡌ͍ͤͯΔͷͰɺޙ΄Ͳ֬͝ೝ͍ͩ͘͞
ઃఆ1)1$-* w 1SFGFSFODFT1)1 w $-**OUFSQSFUFSະબʹͳ͍ͬͯΔ w ʮʜʯΛબ
ઃఆ1)1$-* w ʮʴʯˠʮ'SPN%PDLFSʜʯΛબ w 1)1࣮ߦڥΛՃ͢Δ
ઃఆ1)1$-* w ʮ%PDLFS$PNQPTFʯˠʮQIQDMJʯΛબͯ͠ʮ0,ʯ w ϦϞʔτ࣮ߦڥΛબ͢Δ
ઃఆ1)1$-* w ίϯςφͷ1)1 όʔδϣϯ͕ද ࣔ͞ΕͨΒ0, w දࣔ͞Εͳͯ͘ େৎͳ͜ͱ ͋Δ
ઃఆ5FTU'SBNFXPSLT w දࣔ͞ΕΔμΠΞϩάͰbQIQDMJ`Λબͯ͠0, w b-PDBM`ͱ͍͏ઃఆআ͠·͠ΐ͏
ઃఆ5FTU'SBNFXPSLT w 1)16OJUͷόʔδϣϯ͕දࣔ͞ΕͨΒ0,
Ϣχοτςετ࡞͕ Ͳ͏ָʹͳΔ͔
1IQ4UPSN͔Β ςετΛ࣮ߦ͢Δ w ςετϑΝΠϧɾςετϝιο υɾϑΥϧμશ෦ w ࣦഊͨ͠ςετͷΈ࠶࣮ߦ w ࣦഊͨ͠ςετ݁Ռ͔Βίʔυ δϟϯϓ
σϞ
None
w λʔϛφϧͱ*%&ΛΓସ͑ͣʹࡁ Ή w ಛఆͷϝιου͚࣮ͩߦ͍ͨ͠ͱ͖ ʹ--filter=testSomethingͳ ͲͱࢦఆͤͣʹࡁΉ ϝϦοτ
ςετ࣮ߦ͠ͳ͕Β σόοά w ࣦഊͨ͠6TFST$POUSPMMFSMPHJO ϩάΠϯ ػೳ ͷ్தʹϒϨʔΫϙΠϯτΛઃఆͯ͠ม Λ֬ೝͯ͠ΈΔ w
ϦΫΤετͰ*%1BTTXPSE͕1PTU͞Ε͍ͯΔ ͔֬ೝ 7BSJBCMFTͰΠϯΫϦϝϯλϧαʔν w ʮ$PQZ7BMVF"TʜʯͰ࣮ߦதͷม͔Βς ετσʔλΛ࡞
σϞ
None
ϝϦοτ w ϒϨʔΫ͢Δͱςετதͷม ͕؆୯ʹ֬ೝͰ͖Δ w ࣮ߦதͷมΛίϐϖͯ͠؆ ୯ʹςετσʔλΛ࡞ΕΔ
ςετ࣮ߦ࣌ͷΧόϨοδ ΛΤσΟλϑΝΠϥʹදࣔ w 6TFST$POUSPMMFS5FTUͰl3VO UFTUT 1)16OJU XJUI$PWFSBHFz w ʮ1SPKFDUʯύωϧʹߦΧόϨοδ͕ දࣔ͞ΕΔ
w ςετͰ͖ͯͳ͍ίʔυΛݟ͚ͭΔ w ςετΛՃͯ͠࠶࣮ߦ
σϞ
w 1SPKFDUύωϧϑΥϧμϑΝΠϧ͝ͱͷߦΧόϨοδ͕දࣔ͞ΕΔ w ҹςετͰ࣮ߦ͞Ε͍ͯͳ͍ߦ
ϝϦοτ w ίʔυ͕ςετͰ࣮ߦͰ͖͍ͯΔ͔ ͷௐ͕ࠪ͘͢͠ w Ͳͷߦ͕࣮ߦͰ͖͍ͯΔ͔֬ೝ͠ͳ ͕Βςετ࡞Λࢼߦࡨޡ͢Δ w ߦΧόϨοδΛࢦ͞ͳ͍ ߹Ͱศར
·ͱΊ 1IQ4UPSNͱ1)16OJUΛ࿈ܞ͢Δͱ w 1IQ4UPSN͔Βςετ࣮ߦͰ͖ͯɺख ͕ؒݮΔ w σόοά͠ͳ͕Βͷௐ͕ࠪ͘͢͠ͳΔ w ΧόϨοδΛݟͳ͕ΒςετΛॻ͘ͱίʔ υ͕࣮ߦͰ͖͍ͯΔ͔Ѳ͍͢͠