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
PhpStormとPHPUnitを 連携してユニットテスト 作成を楽にする / Integra...
Search
tenkoma (Koji Tanaka)
December 26, 2018
Programming
690
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
PhpStormとPHPUnitを 連携してユニットテスト 作成を楽にする / Integrating PHPUnit with a PhpStorm
2018/12/26 第133回 PHP勉強会@東京で発表した内容です。
tenkoma (Koji Tanaka)
December 26, 2018
More Decks by tenkoma (Koji Tanaka)
See All by tenkoma (Koji Tanaka)
PhpStormでコードを理解する技術 / How to use PhpStorm to understand the code
tenkoma_
0
3.7k
PhpStormとPHPUnitを連携してユニットテスト作成を楽にする ver.phpconsen / integrating-phpunit-with-a-phpstorm-ver-phpconsen
tenkoma_
0
4.4k
CakeFest 2019について / About CakeFest 2019
tenkoma_
0
4.2k
ユニットテストを書きやすくするためにテストスイートを拡張する / Extend test suite to make unit test easier to write
tenkoma_
0
2.9k
BASE の PHP アプリ アップデートについて
tenkoma_
0
4.6k
CircleCI 2.0 で CakePHP3 アプリのビルド
tenkoma_
0
2.1k
GitLab CI + Review Apps で簡易レビュー環境
tenkoma_
4
3.1k
CakePHP プロジェクトにプルリクを送り続けた僕は
tenkoma_
0
660
Webpack勉強会 JavaScriptビルド編
tenkoma_
1
2.1k
Other Decks in Programming
See All in Programming
使用 Meilisearch 建立新聞搜尋工具
johnroyer
0
230
the container ship “Apple Silicon”@WWDC26 Recap -Japan-\(region).swift
shingangan
0
110
ソフトウェア設計に溶けるインフラ ― AWS CDK のインフラ認識論
konokenj
3
750
<title><a id="</title>君はこのHTMLをパースできるか"></a></title> #雑LT_study
pizzacat83
0
140
仕様駆動開発の消費期限
watany
12
5.4k
ここ半年くらいでAIに作らせたR用ツール
eitsupi
0
370
「寝てても仕事が進む」Claude Codeで組む第二の脳
tomoyafujita2016
0
300
為什麼你並不需要ViewModel / No, you don't need a ViewModel
lovee
1
480
Laravel Boostに学ぶ、AIにPHPを書かせる技術 〜OSSの実装から蒸留するエージェント制御の王道〜
kentaroutakeda
3
670
OpenSpecのproposalにbrainstormingを持たせてみた
tigertora7571
1
200
自動化したのに回らないテスト運用の壁ーAI時代の品質責任と生産性
mfunaki
0
120
Claude CodeとAgentCore Gatewayを繋ぐ際の認証認可 / Authentication and authorization when connecting Claude Code with AgentCore Gateway
har1101
1
240
Featured
See All Featured
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.5k
Paper Plane (Part 1)
katiecoart
PRO
1
10k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
360
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
160
Measuring & Analyzing Core Web Vitals
bluesmoon
9
950
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
6k
The Language of Interfaces
destraynor
162
27k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
190
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
630
Building the Perfect Custom Keyboard
takai
2
830
Build your cross-platform service in a week with App Engine
jlugia
234
19k
Transcript
1IQ4UPSNͱ1)16OJUΛ ࿈ܞͯ͠Ϣχοτςετ ࡞Λָʹ͢Δ ୈճ1)1ษڧձ!౦ژ ాத࣏!UFOLPNB
͢͜ͱ 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$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 ςετ࣮ߦίϚϯ υ͕ΧελϚΠζ
͞Ε͍ͯΔ
ͣͬͱղܾ͔ͨͬͨ͠ ࿈ܞͰ͖ͳ͍͔ ίʔυΛॻ͍ͯΈͨ
࿈ܞͰ͖ͨͷͰϒϩάهࣄॻ͍ͨ IUUQTUFOLPNBIBUFOBCMPHDPNFOUSZ
࿈ܞͷઃఆ
આ໌༻ڥ w $BLF1)1ެࣜͷνϡʔτϦΞϧͰ࡞ͬͨ $BLFΞϓϦʹςετΛՃ w IUUQTHJUIVCDPNUFOLPNB DBLFQIQ@DNT w %PDLFSͰߏங w
.BDͰݕূࡁɺ8JOEPXTͰσόοάҎ ֎ಈ࡞֬ೝࡁ
։ൃڥىಈ $ docker-compose up -d
ઃఆ1)1$-*
ઃఆ1)1$-*
ઃఆ1)1$-*
ઃఆ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 3VOύωϧͷςετ݁Ռ͔Βίʔ υδϟϯϓ
σϞ
None
1IQ4UPSN͔Β ςετΛ࣮ߦͰ͖Δ w ϑΝΠϧɾςετϝιουɾϑΥ ϧμશ෦ w ࣦഊͨ͠ςετͷΈ࠶࣮ߦ w 3VOύωϧͷςετ݁Ռ͔Βίʔ υδϟϯϓ
w λʔϛφϧͱ*%&ΛΓସ͑ͣʹࡁ Ή w ಛఆͷϝιου͚࣮ͩߦ͍ͨ͠ͱ͖ ʹ--filter=testSomethingͳ ͲͱࢦఆͤͣʹࡁΉ ͷϝϦοτ
σόοά͠ͳ͕Β ςετ࣮ߦͰ͖Δ w ࣦഊͨ͠6TFSTMPHJO ͷ్தʹ ϒϨʔΫϙΠϯτΛઃఆͯ͠มΛ֬ೝͯ͠ ΈΔ w ϦΫΤετͰ*%1BTTXPSE͕1PTU͞Ε͍ͯΔ ͔֬ೝ
7BSJBCMFTͰΠϯΫϦϝϯλϧαʔν w ϒϨʔΫϙΠϯτΛͨ͠··σόοάͤͣ ʹ࣮ߦ
σϞ
None
σόοά͠ͳ͕Β ςετ࣮ߦͰ͖Δ w ࣦഊͨ͠6TFSTMPHJO ͷ్தʹ ϒϨʔΫϙΠϯτΛઃఆͯ͠ςετΛ࠶࣮ߦ σ όοά w
ϦΫΤετͰ*%1BTTXPSE͕1PTU͞Ε͍ͯΔ ͔֬ೝ 7BSJBCMFTͰΠϯΫϦϝϯλϧαʔν w ϒϨʔΫϙΠϯτΛͨ͠··σόοάͤͣ ʹ࣮ߦ
ͷϝϦοτ w ϒϨʔΫ͢Δͱςετதͷม ͕؆୯ʹ֬ೝͰ͖Δ w ϒϨʔΫϙΠϯτΛΓସ͑ ͳͯ͘ɺσόοά͋Γͳ͠ ͷ࣮ߦ͕Γସ͑ΒΕΔ
ςετ࣮ߦ࣌ͷΧόϨοδ ΛΤσΟλϑΝΠϥʹදࣔ w 6TFST$POUSPMMFSͰl3VO UFTUT 1)16OJU XJUI$PWFSBHFz w ʮ1SPKFDUʯύωϧʹߦΧόϨοδ͕දࣔ ͞ΕΔ
w MPHJO Ͱೝূࣦഊ࣌ͷςετ͕Ͱ͖ͯͳ͍ w ςετΛՃͯ͠࠶࣮ߦ
σϞ
w 1SPKFDUύωϧϑΥϧμϑΝΠϧ͝ͱͷߦΧόϨοδ͕දࣔ͞ΕΔ w ҹςετͰ࣮ߦ͞Ε͍ͯͳ͍ߦ
ςετ࣮ߦ࣌ͷΧόϨοδ ΛΤσΟλϑΝΠϥʹදࣔ w 6TFST$POUSPMMFSͰl3VO UFTUT 1)16OJU XJUI$PWFSBHFz w ʮ1SPKFDUʯύωϧʹߦΧόϨοδ͕දࣔ ͞ΕΔ
w MPHJO Ͱೝূࣦഊ࣌ͷςετ͕Ͱ͖ͯͳ͍ w ςετΛՃͯ͠࠶࣮ߦ
ͷϝϦοτ w ίʔυ͕ςετͰ࣮ߦͰ͖͍ͯΔ͔ ͷௐࠪ w Ͳͷߦ͕࣮ߦͰ͖͍ͯΔ͔֬ೝ͠ͳ ͕Βςετ࡞Λࢼߦࡨޡ͢Δ w ߦΧόϨοδΛࢦ͞ͳ͍ ߹Ͱศར
·ͱΊ 1IQ4UPSNͱ1)16OJUΛ࿈ܞ͢Δͱ w 1IQ4UPSN͔Βςετ࣮ߦͰ͖ͯɺख ͕ؒݮΔ w σόοά͠ͳ͕Βͷௐ͕͍ࠪ͢͠ w ΧόϨοδΛݟͳ͕ΒςετΛॻ͘ͱίʔ υ͕࣮ߦͰ͖͍ͯΔ͔Ѳ͍͢͠