PhpStormとPHPUnitを連携してユニットテスト作成を楽にする ver.phpconsen / integrating-phpunit-with-a-phpstorm-ver-phpconsen

PhpStormとPHPUnitを連携してユニットテスト作成を楽にする ver.phpconsen / integrating-phpunit-with-a-phpstorm-ver-phpconsen

2019/1/26 にPHPカンファレンス仙台2019でお話しするトークのスライドです。

6c3a375d1752c7f5aafc963296b9d5a0?s=128

tenkoma (Koji Tanaka)

January 26, 2019
Tweet

Transcript

  1. 1IQ4UPSNͱ1)16OJUΛ ࿈ܞͯ͠Ϣχοτςετ ࡞੒Λָʹ͢Δ 1)1ΧϯϑΝϨϯεઋ୆ ాத޹࣏!UFOLPNB

  2. ࠷ۙɺϢχοτςετ ॻ͚ͯ·͔͢ʁ

  3. ςετॻ͍࣮ͯߦͷ܁Γฦ͠ ͕໘౗ͩͱࢥͬͨ͜ͱ͸ ͋Γ·͔͢ʁ

  4. 1IQ4UPSNͱ1)16OJUΛ࿈ܞ ͢Δͱςετ࡞੒ָ͕ʹͳΓɺ ίʔυཧղ΋͠΍͘͢ͳΓ·͢ ࢼͯ͠Έ͍ͯͩ͘͞

  5. ͪͳΈʹ
 1IQ4UPSNΛ࢖͍ͬͯΔํ !

  6. ͢Ͱʹ1)16OJUͱ࿈ܞͯ͠ ςετॻ͍ͯΔΑͱ͍͏ํ

  7. ࿩͢͜ͱ w1)16OJUͱ͸ɺ1IQ4UPSN࿈ܞͱ͸ w࿈ܞͰ͖ͯͳ͔ͬͨ։ൃ؀ڥ w࿈ܞͷઃఆ wϢχοτςετ࡞੒͕Ͳ͏ָʹͳΔ͔ σϞ͋Γ  w❌Ϣχοτςετͷجຊతͳॻ͖ํ w❌1IQ4UPSNͷجຊతͳ࢖͍ํ

  8. ࣗݾ঺հ wాத޹࣏ 5BOBLB,PKJ  w!UFOLPNB (JU)VC 5XJUUFSʜ  w#"4&גࣜձࣾ1SPEVDU%JWJTJPO
 #BDLFOE&OHJOFFS

    ʙ  w1)1$BLF1)1όʔδϣϯΞοϓɾϞόΠϧΞϓϦόοΫΤ ϯυ։ൃ wϢχοτςετͷ͠΍͢͞ɺ҆ఆੑͷվળ w$POUSJCVUFEUP$BLF1)1
  9. 1)16OJUͱ͸ 1IQ4UPSN࿈ܞͱ͸

  10. 1)16OJU w 1)1ίʔυͷϢχοτςετΛॻͨ͘Ί ͷϑϨʔϜϫʔΫ w ଟ͘ͷ1)1ϥΠϒϥϦͰ࢖ΘΕ͍ͯΔ w 8FCΞϓϦέʔγϣϯͷςετج൫ͱ͠ ͯ΋࢖ΘΕΔ ˞େن໛1)1ϓϩδΣΫτͰ1)16OJUΛ̏ੈ୅ΞοϓάϨʔυ͢ΔͨΊʹ΍ͬͨ͜ͱ

    IUUQTTQFBLFSEFDLDPNEROFPQIQVOJUVQHSBEFTUPSZ TMJEF Λࢀߟʹ͠·ͨ͠
  11. 1)16OJU WFOEPSCJOQIQVOJU ΞΠίϯը૾ IUUQTQJYBCBZDPNKBVTFSTNU[E ςετ࣮ߦ ςετ݁Ռ ࣮ߦ ݁ՌΛݕূ QIQVOJUίϚϯυ ͢΂ͯύε

    ͭҎ্ࣦഊ ςετέʔε ςετ͍ͨ͠ ΞϓϦέʔγϣϯ ίʔυ
  12. 1IQ4UPSN w 1IQ4UPSN1)1ΞϓϦέʔ γϣϯͷͨΊͷ౷߹։ൃ؀ڥ *%&  w ΤσΟλɾσόοΨ࿈ܞɾ੩ తղੳɾόʔδϣϯ؅ཧFUD

  13. 1IQ4UPSNͱ࿈ܞ WFOEPSCJOQIQVOJU ίϚϯυ࣮ߦ ݁ՌΛऔಘͯ͠දࣔ ࿈ܞ͢Δ͜ͱͰɺ 1IQ4UPSN͔Βςετ ࣮ߦͰ͖Δ ςετέʔε ΞϓϦέʔγϣϯίʔυ

  14. ࿈ܞͰ͖ͯͳ͔ͬͨ։ൃ؀ڥ $BLF1)1ΞϓϦ

  15. $BLF1)1ݻ༗ͷࣄ৘ $BLF1)1 5FTU4IFMM ίϚϯυ࣮ߦ ݁ՌΛऔಘͯ͠දࣔ ςετέʔε ΞϓϦέʔγϣϯίʔυ w ςετ࣮ߦίϚϯ υ͕ΧελϚΠζ

    ͞Ε͍ͯΔ
  16. ΤσΟλͰίʔυมߋ λʔϛφϧʹ੾Γସ͑ͯςετ࣮ߦ ʜ܁Γฦ͠ʜ

  17. ΤσΟλͰίʔυมߋ λʔϛφϧʹ੾Γସ͑ͯςετ࣮ߦ ʜ܁Γฦ͠ʜ

  18. ΤσΟλͰίʔυมߋ λʔϛφϧʹ੾Γସ͑ͯςετ࣮ߦ ʜ܁Γฦ͠ʜ

  19. ΤσΟλͰίʔυมߋ λʔϛφϧʹ੾Γସ͑ͯςετ࣮ߦ ʜ܁Γฦ͠ʜ

  20. গ͠1)1ίʔυΛ௥Ճͨ͠Β ࿈ܞͰ͖ͨͷͰϒϩάهࣄॻ͍ͨ IUUQTUFOLPNBIBUFOBCMPHDPNFOUSZ $BLF1)1ͰΞϓϦ։ൃͯ͠Δํ͸ࢀߟʹ

  21. ࿈ܞͷઃఆ

  22. આ໌༻։ൃ؀ڥ EPDLFSDPNQPTF $BLF1)1ΞϓϦ w IUUQTHJUIVCDPN UFOLPNB DBLFQIQ@DNT w %PDLFSͰߏங w

    $BLF1)1ެࣜͷνϡʔ τϦΞϧͰ࡞ͬͨ $BLFΞϓϦʹςετ Λ௥Ճ
  23. ։ൃ؀ڥىಈ $ git clone https://github.com/ tenkoma/cakephp_cms.git $ cd cakephp_cms $

    make $ make migrate w ઃఆલʹίϯςφΛىಈ͓ͯ͘͠ w 1IQ4UPSNͰDBLFQIQ@DNTϑΥϧμΛ։͘
  24. 1)1$-* 5FTU'SBNFXPSLT ͷઃఆ ˞͔͚଍Ͱઆ໌͠·͕͢ɺεΫϦʔϯγϣοτΛ ଟΊʹࡌ͍ͤͯΔͷͰɺޙ΄Ͳ֬͝ೝ͍ͩ͘͞

  25. ઃఆ1)1$-* w 1SFGFSFODFT1)1 w $-**OUFSQSFUFS͸ະબ୒ʹͳ͍ͬͯΔ w ʮʜʯΛબ୒

  26. ઃఆ1)1$-* w ʮʴʯˠʮ'SPN%PDLFSʜʯΛબ୒ w 1)1࣮ߦ؀ڥΛ௥Ճ͢Δ

  27. ઃఆ1)1$-* w ʮ%PDLFS$PNQPTFʯˠʮQIQDMJʯΛબ୒ͯ͠ʮ0,ʯ w ϦϞʔτ࣮ߦ؀ڥΛબ୒͢Δ

  28. ઃఆ1)1$-* w ίϯςφ಺ͷ1)1 όʔδϣϯ͕ද ࣔ͞ΕͨΒ0, w දࣔ͞Εͳͯ͘ ΋େৎ෉ͳ͜ͱ ΋͋Δ

  29. ઃఆ5FTU'SBNFXPSLT w දࣔ͞ΕΔμΠΞϩάͰbQIQDMJ`Λબ୒ͯ͠0, w b-PDBM`ͱ͍͏ઃఆ͸࡟আ͠·͠ΐ͏

  30. ઃఆ5FTU'SBNFXPSLT w 1)16OJUͷόʔδϣϯ͕දࣔ͞ΕͨΒ0,

  31. Ϣχοτςετ࡞੒͕ Ͳ͏ָʹͳΔ͔

  32. 1IQ4UPSN͔Β ςετΛ࣮ߦ͢Δ w ςετϑΝΠϧɾςετϝιο υɾϑΥϧμ಺શ෦ w ࣦഊͨ͠ςετͷΈ࠶࣮ߦ w ࣦഊͨ͠ςετ݁Ռ͔Βίʔυ δϟϯϓ

  33. σϞ

  34. None
  35. w λʔϛφϧͱ*%&Λ੾Γସ͑ͣʹࡁ Ή w ಛఆͷϝιου͚࣮ͩߦ͍ͨ͠ͱ͖ ʹ--filter=testSomethingͳ ͲͱࢦఆͤͣʹࡁΉ ϝϦοτ

  36. ςετ࣮ߦ͠ͳ͕Β σόοά w ࣦഊͨ͠6TFST$POUSPMMFSMPHJO  ϩάΠϯ ػೳ ͷ్தʹϒϨʔΫϙΠϯτΛઃఆͯ͠ม ਺Λ֬ೝͯ͠ΈΔ w

    ϦΫΤετͰ*%1BTTXPSE͕1PTU͞Ε͍ͯΔ ͔֬ೝ 7BSJBCMFTͰΠϯΫϦϝϯλϧαʔν  w ʮ$PQZ7BMVF"TʜʯͰ࣮ߦதͷม਺͔Βς ετσʔλΛ࡞੒
  37. σϞ

  38. None
  39. ϝϦοτ w ϒϨʔΫ͢Δͱςετதͷม ਺͕؆୯ʹ֬ೝͰ͖Δ w ࣮ߦதͷม਺Λίϐϖͯ͠؆ ୯ʹςετσʔλΛ࡞ΕΔ

  40. ςετ࣮ߦ࣌ͷΧόϨοδ ΛΤσΟλ΍ϑΝΠϥʹදࣔ w 6TFST$POUSPMMFS5FTUͰl3VO UFTUT 1)16OJU XJUI$PWFSBHFz w ʮ1SPKFDUʯύωϧʹߦΧόϨοδ͕ දࣔ͞ΕΔ

    w ςετͰ͖ͯͳ͍ίʔυΛݟ͚ͭΔ w ςετΛ௥Ճͯ͠࠶࣮ߦ
  41. σϞ

  42. w 1SPKFDUύωϧϑΥϧμ΍ϑΝΠϧ͝ͱͷߦΧόϨοδ͕දࣔ͞ΕΔ w ໼ҹςετͰ࣮ߦ͞Ε͍ͯͳ͍ߦ

  43. ϝϦοτ w ίʔυ͕ςετͰ࣮ߦͰ͖͍ͯΔ͔ ͷௐ͕ࠪ͠΍͘͢ w Ͳͷߦ͕࣮ߦͰ͖͍ͯΔ͔֬ೝ͠ͳ ͕Βςετ࡞੒Λࢼߦࡨޡ͢Δ w ߦΧόϨοδΛ໨ࢦ͞ͳ͍৔ ߹Ͱ΋ศར

  44. ·ͱΊ 1IQ4UPSNͱ1)16OJUΛ࿈ܞ͢Δͱ w 1IQ4UPSN͔Βςετ࣮ߦͰ͖ͯɺख ͕ؒݮΔ w σόοά͠ͳ͕Βͷௐ͕ࠪ͠΍͘͢ͳΔ w ΧόϨοδΛݟͳ͕ΒςετΛॻ͘ͱίʔ υ͕࣮ߦͰ͖͍ͯΔ͔೺Ѳ͠΍͍͢