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

CakePHP2+BDD Pluginで カンタン受入れテスト

CakePHP2+BDD Pluginで カンタン受入れテスト

2013/3/9
(CakePHPとか)PHPのテストについての勉強会@co-edo

Kaz Watanabe

January 31, 2013
Tweet

More Decks by Kaz Watanabe

Other Decks in Programming

Transcript

  1. CakePHP2+Jenkins
    ͰܧଓతΠϯςάϨʔγϣϯ
    2013/3/9
    ʢCakePHPͱ͔ʣPHPͷςετʹ͍ͭͯͷษڧձ@co-edo
    Kaz Watanabe(@kaz_29)
    13೥3݄9೔౔༵೔

    View Slide

  2. Who?
    Θͨͳ΂͔ͣͻΖ(@kaz_29)
    ϑϦʔϥϯε(decr.jp)
    Webܥͷ։ൃ
    ΞϓϦ͔ΒΠϯϑϥ·Ͱ...
    iPhone/iPadΞϓϦ։ൃ
    NiftyCloudϢʔβʔϒϩά
    #beer #iosdev #cakephp #cat #camp #golf
    13೥3݄9೔౔༵೔

    View Slide

  3. Who?
    ిྗάϥϑ DNS Console
    for Dozens
    13೥3݄9೔౔༵೔

    View Slide

  4. ܧଓత
    ΠϯςάϨʔγϣϯ
    Continuous Integration
    13೥3݄9೔౔༵೔

    View Slide

  5. ओʹϓϩάϥϚʔͷΞϓϦέʔγϣϯ࡞
    ੒࣌ͷ඼࣭վળ΍ೲظͷ୹ॖͷͨΊͷश
    ׳ͷ͜ͱͰ͋ΔɻΤΫετϦʔϜɾϓϩ
    άϥϛϯάͷϓϥΫςΟεͷҰͭͰɺڱ
    ٛʹ͸Ϗϧυ΍ςετɺΠϯεϖΫγϣ
    ϯͳͲΛܧଓతʹ࣮ߦ͍ͯ͘͜͠ͱΛҙ
    ຯ͢Δɻಛʹɺۙ೥ͷ։ൃʹ͓͍ͯ͸ɺ
    ܧଓతΠϯςάϨʔγϣϯΛαϙʔτ͢
    Διϑτ΢ΣΞΛ࢖༻͢Δ͜ͱ͕͋Δɻ
    http://ja.wikipedia.org/wiki/ܧଓతΠϯςάϨʔγϣϯ
    13೥3݄9೔౔༵೔

    View Slide

  6. ϝϦοτ
    ໰୊͕͙͢ʹݟ͔ͭΔ
    Өڹൣғ͕খ͍͞͏ͪʹ௚ͤΔ
    ࣗಈͳͷͰख͕͔͔ؒΒͳ͍
    มԽͷ༷ࢠΛ֬ೝͰ͖Δ
    13೥3݄9೔౔༵೔

    View Slide

  7. http://amzn.to/rPiR9V
    https://speakerdeck.com/ryuzee/cakephp-plus-jenkinsniyoruaziyairukai-fa-number-
    phpmatsuri
    13೥3݄9೔౔༵೔

    View Slide

  8. ಈ࡞؀ڥ
    13೥3݄9೔౔༵೔

    View Slide

  9. ᶃpush
    ྲྀΕ
    ᶄgithub WebHook
    ᶅpoll
    ᶄcommit log
    ϛʔςΟϯάπʔϧ
    (։ൃऀϝϯό/ΫϥΠΞϯτ)
    ᶆBuild ࣦഊ
    ϠόΠʂ͙͢௚ͤʙʂʂ
    13೥3݄9೔౔༵೔

    View Slide

  10. Install
    https://gist.github.com/kaz29/5116408
    Ubuntu 12.04
    13೥3݄9೔౔༵೔

    View Slide

  11. php-job-template
    http://jenkins-php.org/
    https://gist.github.com/kaz29/5116408#file-php-template-sh
    13೥3݄9೔౔༵೔

    View Slide

  12. Build Trigger
    ଞϓϩδΣΫτͷϏϧυޙʹϏϧυ
    ϦϞʔτ͔ΒϏϧυ (ྫ: εΫϦϓτ͔Β)
    Build when a change is pushed to GitHub
    SCMΛϙʔϦϯά
    ఆظతʹ࣮ߦ
    13೥3݄9೔౔༵೔

    View Slide

  13. Buildͷ࢓૊Έ
    Apache Ant
    Phing
    Shell
    etc...
    13೥3݄9೔౔༵೔

    View Slide

  14. Apache Ant
    Java༻ͷϏϧυπʔϧ
    ෳ਺ͷtargetΛࢦఆ
    targetͷґଘؔ܎
    ίϚϯυͷ࣮ߦ
    13೥3݄9೔౔༵೔

    View Slide

  15. XMLॻ͘ͷ໘౗
    (><)
    13೥3݄9೔౔༵೔

    View Slide

  16. CakePHP2༻
    ࡞ͬͨ
    https://gist.github.com/kaz29/5116408#file-build-xml
    13೥3݄9೔౔༵೔

    View Slide

  17. ԿΛ͢Δ͔?
    lint - จ๏νΣοΫ
    phploc(*) - ϓϩδΣΫτͷن໛Λଌఆ
    pdpend (*) - ύοέʔδ୯ҐͷϝτϦΫεͷଌఆ(ґଘ౓ͱ͔)
    phpcb (*) - ιʔείʔυຖͷঢ়ଶΛղੳ
    phpmd - ੩తղੳ(࣮૷্ͷ໰୊Λݕग़)
    phpcs - ίʔσΟϯάن໿νΣοΫ
    phpcpd - ίϐϖίʔυͷݕग़
    migration - DBͷϚΠάϨʔγϣϯ(cakedc/Migrations plugin)
    UnitTest - ୯ମςετ(CakePHP TestCase)
    StoryTest - डೖΕςετ(sizuhiko/Bdd plugin)
    13೥3݄9೔౔༵೔

    View Slide

  18. Buildޙͷॲཧ
    BuildͰ࡞੒͞Εͨ݁ՌΛूܭ
    Checkstyle
    PMD
    phpcpd
    Code Coverage
    UnitTest݁Ռ
    13೥3݄9೔౔༵೔

    View Slide

  19. 13೥3݄9೔౔༵೔

    View Slide

  20. DEMO
    13೥3݄9೔౔༵೔

    View Slide

  21. 3ϲ݄·Θͨ͠
    ײ૝
    13೥3݄9೔౔༵೔

    View Slide

  22. ༧૝֎ͷόά
    ͕ݟ͔ͭΔ
    13೥3݄9೔౔༵೔

    View Slide

  23. Framework/Library
    Updateָ͕
    13೥3݄9೔౔༵೔

    View Slide

  24. ࠓޙͷ՝୊
    13೥3݄9೔౔༵೔

    View Slide

  25. Jenkinsͷߴ଎Խ
    13೥3݄9೔౔༵೔

    View Slide

  26. UnitTest/Story Test
    ͷ෼཭
    13೥3݄9೔౔༵೔

    View Slide

  27. ࣗಈ
    ʮσϓϩʙΠʂʯ
    13೥3݄9೔౔༵೔

    View Slide

  28. Q?
    @kaz_29
    13೥3݄9೔౔༵೔

    View Slide