Upgrade to Pro — share decks privately, control downloads, hide ads and more …

PhpStormとPHPUnitを 連携してユニットテスト 作成を楽にする / Integrating PHPUnit with a PhpStorm

PhpStormとPHPUnitを 連携してユニットテスト 作成を楽にする / Integrating PHPUnit with a PhpStorm

2018/12/26 第133回 PHP勉強会@東京で発表した内容です。

6c3a375d1752c7f5aafc963296b9d5a0?s=128

tenkoma (Koji Tanaka)

December 26, 2018
Tweet

Transcript

  1. 1IQ4UPSNͱ1)16OJUΛ ࿈ܞͯ͠Ϣχοτςετ ࡞੒Λָʹ͢Δ ୈճ1)1ษڧձ!౦ژ ాத޹࣏!UFOLPNB

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

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

    ʙ  w1)1$BLF1)1όʔδϣϯΞοϓɾϞόΠϧΞϓϦ όοΫΤϯυ։ൃ w$POUSJCVUFEUP$BLF1)1
  4. 1)16OJUͱ͸ 1IQ4UPSN࿈ܞͱ͸

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

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

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

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

  9. ࿈ܞͮ͠Β͍؀ڥ $BLF1)1ΞϓϦ

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

    ͞Ε͍ͯΔ
  11. ͣͬͱղܾ͔ͨͬͨ͠ ࿈ܞͰ͖ͳ͍͔ ίʔυΛॻ͍ͯΈͨ

  12. ࿈ܞͰ͖ͨͷͰϒϩάهࣄॻ͍ͨ IUUQTUFOLPNBIBUFOBCMPHDPNFOUSZ

  13. ࿈ܞͷઃఆ

  14. આ໌༻؀ڥ w $BLF1)1ެࣜͷνϡʔτϦΞϧͰ࡞ͬͨ $BLFΞϓϦʹςετΛ௥Ճ w IUUQTHJUIVCDPNUFOLPNB DBLFQIQ@DNT w %PDLFSͰߏங w

    .BDͰݕূࡁɺ8JOEPXTͰ΋σόοάҎ ֎͸ಈ࡞֬ೝࡁ
  15. ։ൃ؀ڥىಈ $ docker-compose up -d

  16. ઃఆ1)1$-*

  17. ઃఆ1)1$-*

  18. ઃఆ1)1$-*

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

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

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

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

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

  24. σϞ

  25. None
  26. 1IQ4UPSN͔Β ςετΛ࣮ߦͰ͖Δ w ϑΝΠϧɾςετϝιουɾϑΥ ϧμ಺શ෦ w ࣦഊͨ͠ςετͷΈ࠶࣮ߦ w 3VOύωϧͷςετ݁Ռ͔Βίʔ υδϟϯϓ

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

  28. σόοά͠ͳ͕Β ςετ࣮ߦͰ͖Δ w ࣦഊͨ͠6TFSTMPHJO ͷ్தʹ
 ϒϨʔΫϙΠϯτΛઃఆͯ͠ม਺Λ֬ೝͯ͠ ΈΔ w ϦΫΤετͰ*%1BTTXPSE͕1PTU͞Ε͍ͯΔ ͔֬ೝ

    7BSJBCMFTͰΠϯΫϦϝϯλϧαʔν  w ϒϨʔΫϙΠϯτΛ࢒ͨ͠··σόοάͤͣ ʹ࣮ߦ
  29. σϞ

  30. None
  31. σόοά͠ͳ͕Β ςετ࣮ߦͰ͖Δ w ࣦഊͨ͠6TFSTMPHJO ͷ్தʹ
 ϒϨʔΫϙΠϯτΛઃఆͯ͠ςετΛ࠶࣮ߦ σ όοά  w

    ϦΫΤετͰ*%1BTTXPSE͕1PTU͞Ε͍ͯΔ ͔֬ೝ 7BSJBCMFTͰΠϯΫϦϝϯλϧαʔν  w ϒϨʔΫϙΠϯτΛ࢒ͨ͠··σόοάͤͣ ʹ࣮ߦ
  32. ͷϝϦοτ w ϒϨʔΫ͢Δͱςετதͷม ਺͕؆୯ʹ֬ೝͰ͖Δ w ϒϨʔΫϙΠϯτΛ੾Γସ͑ ͳͯ͘΋ɺσόοά͋Γͳ͠ ͷ࣮ߦ͕੾Γସ͑ΒΕΔ

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

    w MPHJO Ͱೝূࣦഊ࣌ͷςετ͕Ͱ͖ͯͳ͍ w ςετΛ௥Ճͯ͠࠶࣮ߦ
  34. σϞ

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

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

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

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