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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
tenkoma (Koji Tanaka)
December 26, 2018
Programming
680
1
Share
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.6k
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
サーバーレスで作る、動画データ管理基盤
oyasumipants
0
220
Spec-Driven Development with AI Agents (Workshop, May 2026)
antonarhipov
3
390
Firefoxにコントリビューションして得られた学び
ken7253
2
170
2026年のソフトウェア開発を考える(2026/05版) / Software Engineering Scrum Fest Niigata 2026 Edition
twada
PRO
23
13k
検索設計から 推論設計への重心移動と Recall-First Retrieval
po3rin
5
1.7k
実践ハーネスエンジニアリング:ステアリングループを実例から読み解く / Practical Harness Engineering: Understanding Steering Loops Through Real-World Examples
nrslib
5
5.6k
1人1案件のプロダクトエンジニア時代に、"プロセス監督"としてチャレンジしたこと
non0113
0
110
書き換えて学ぶTemporal #fukts
pirosikick
2
380
Agent Skills を社内で育てる仕組み作り
jackchuka
1
2.1k
ECR拡張スキャンでSBOMを収集して サプライチェーン攻撃の影響調査を 爆速で終わらせてみた
akihisaikeda
1
140
ついに来た!本格的なマルチクラウド時代の Google Cloud
maroon1st
0
460
Agentic UI in the Frontend: Architectures with Open Standards @JAX 2026 in Mainz
manfredsteyer
PRO
0
120
Featured
See All Featured
The World Runs on Bad Software
bkeepers
PRO
72
12k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
180
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.1k
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.4k
How STYLIGHT went responsive
nonsquared
100
6.1k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
1.1k
Side Projects
sachag
455
43k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
130
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.9k
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 ΧόϨοδΛݟͳ͕ΒςετΛॻ͘ͱίʔ υ͕࣮ߦͰ͖͍ͯΔ͔Ѳ͍͢͠