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

RSpecで書かれたテストの高速化 / TokyuRubyKaigi10

RSpecで書かれたテストの高速化 / TokyuRubyKaigi10

TokyuRuby会議10(2016/05/29)

B8e501d93b98a553abf0b5cee0c33503?s=128

yasaichi

May 29, 2016
Tweet

Transcript

  1. RSpecͰॻ͔Εͨςετͷ ߴ଎Խ TokyuRubyKaigiɹ2016/05/29 @yasaichi

  2. ࣗݾ঺հ [1] pry(main)> me => { twitter: "@_yasaichi", github: "yasaichi",

    blog: "http://web-salad.hateblo.jp" }
  3. ൃද಺༰ 1. എܠ 2. ݕ౼ࣄ߲ 3. ݁Ռ 4. ·ͱΊ

  4. എܠ

  5. എܠ • “ຊମ”ͷςετʹΊͬͪΌ͕͔͔࣌ؒΔ • ςετέʔε3ສʢ௥هʣɺ1୆ͩͱ਺࣌ؒ • CIαʔϏεͰฒྻ࣮ߦͯ͠΋೫໦ࡔ46ͷ
 ΞϧόϜ1ຕ͸ௌ͚Δ͘Β͍଴ͭ

  6. ೫໦ࡔϑΝϯతʹ͸خ͍͠ ͕ɺϏδωεϚϯతʹ͸خ͘͠ͳ͍ͷͰɾɾɾ

  7. αʔϏεͷػೳ௥ՃɾվળΛ ૉૣ͘ܧଓతʹߦ͏ͨΊʹɺ ςετͷߴ଎Խ͕ඞཁ ʂʂʂ (ʆɾωɾ´)ŝžŕ

  8. ݕ౼ࣄ߲

  9. ީิ • ࣍ͷ3ͭͷgemͷར༻Λݕ౼ • parallel_tests • test-queue • RRRSpecʢΫοΫύου͞Μʙʙʣ

  10. ॴײ1 • test-queue >= parallel_tests • Master-WorkerύλʔϯΛ࠾༻͍ͯ͠ΔͷͰ ֤ϓϩηεͰ࣮ߦ͕࣌ؒภΓʹ͍͘ • ͲͪΒ΋ϚγϯεϖοΫͷ੍໿Λड͚Δ

  11. ॴײ2 • test-queue ≒ RRRSpec • தن໛ʢ1୆ͷϚγϯͰ਺े෼ఔ౓ʣͳΒ test-queueͷํ͕͓खܰ • େن໛ͳΒ෼ࢄ࣮ߦɾεέʔϧΞ΢τʹ


    ΑΔॊೈͳӡ༻͕ՄೳͳRRRSpec
  12. ฐࣾͰ͸ • ࠷ॳʹtest-queueΛಋೖͯ͠Έͨ • 16ίΞͷϚγϯͰ16ฒྻͱ͔΍ͬͯΈͨ
 ͚Ͳظ଴͢Δ࣮ߦ࣌ؒʹͳΒͳ͔ͬͨ • ͱ͍͏Θ͚ͰRRRSpecΛಋೖ

  13. ݁Ռ

  14. ͔͜͜ΒΫοΫύου͞Μͷ ճ͠ऀʹͳΓ·͢

  15. ΊͬͪΌ଎͘ͳͬͨ • 15෼ఔ౓·Ͱ୹ॖ • ϦϦʔεαΠΫϧ͕େ෯ʹ୹ॖ • ίετ΋10%ఔ౓࡟ݮͨ͠ • ΫοΫύουͳ͠Ͱ͸ੜ͖͍͚ͯͳ͍ମʹ

  16. ͨͩ݁ߏେมͩͬͨ • ͋Μ·Γ৘ใ͕ͳ͍ • GitHubʹυΩϡϝϯτ͕͋Δʹ͸͋Δ͕ ίʔυΛݟͳ͍ͱΘ͔Βͳ͍͜ͱ΋ଟ͍ • DockerͰಈ͘αϯϓϧ΋͋Δ͕͔͜͜Β
 ࣮ӡ༻࣌ͷߏ੒ΛΠϝʔδ͠ʹ͍͘

  17. None
  18. ؤுͬͯམͱ͠ࠐΜͩ • https://github.com/yasaichi/rrrspec-tutorial • ฐࣾͰͷ࣮ӡ༻࣌ͷߏ੒ʹ͔ͳΓ͍ۙ • ίϛοτΛॱʹ௥͍ͬͯ͘͜ͱͰҙຯ͕
 Θ͔Δ͸ͣɾɾɾʂ

  19. ·ͱΊ

  20. ·ͱΊ • ςετ͕஗͔ͬͨͷͰRRRSpecΛಋೖͨ͠ • CDΞϧόϜ1ຕ -> 15෼ & ίετ࡟ݮ •

    ͨͩɺͦΕͳΓʹେมͩͬͨͷͰΦϨΦϨ αϯϓϧ༻ҙͨ͠Α
  21. One more thing…

  22. None
  23. ͓ΘΓ