Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up
for free
RSpecで書かれたテストの高速化 / TokyuRubyKaigi10
yasaichi
May 29, 2016
Technology
2
2.3k
RSpecで書かれたテストの高速化 / TokyuRubyKaigi10
TokyuRuby会議10(2016/05/29)
yasaichi
May 29, 2016
Tweet
Share
More Decks by yasaichi
See All by yasaichi
yasaichi
32
9.8k
yasaichi
1
200
yasaichi
117
60k
yasaichi
3
1k
yasaichi
3
560
yasaichi
5
690
yasaichi
0
2.6k
yasaichi
1
3k
yasaichi
3
1.3k
Other Decks in Technology
See All in Technology
sat
1
270
ks91
PRO
0
350
you
0
150
kota2and3kan
2
340
kawaguti
0
430
halhira
1
120
michigari
0
230
recruitengineers
0
250
charity
12
13k
kaga
0
310
oracle4engineer
0
140
yuhta28
0
150
Featured
See All Featured
bryan
32
3.5k
vanstee
118
4.9k
eileencodes
114
25k
lara
590
61k
searls
204
37k
jacobian
257
20k
keavy
107
14k
tanoku
259
24k
lara
17
2.9k
philnash
10
670
kastner
54
2k
brianwarren
82
4.8k
Transcript
RSpecͰॻ͔Εͨςετͷ ߴԽ TokyuRubyKaigiɹ2016/05/29 @yasaichi
ࣗݾհ [1] pry(main)> me => { twitter: "@_yasaichi", github: "yasaichi",
blog: "http://web-salad.hateblo.jp" }
ൃද༰ 1. എܠ 2. ݕ౼ࣄ߲ 3. ݁Ռ 4. ·ͱΊ
എܠ
എܠ • “ຊମ”ͷςετʹΊͬͪΌ͕͔͔࣌ؒΔ • ςετέʔε3ສʢهʣɺ1ͩͱ࣌ؒ • CIαʔϏεͰฒྻ࣮ߦͯ͠೫ࡔ46ͷ ΞϧόϜ1ຕௌ͚Δ͘Β͍ͭ
೫ࡔϑΝϯతʹخ͍͠ ͕ɺϏδωεϚϯతʹخ͘͠ͳ͍ͷͰɾɾɾ
αʔϏεͷػೳՃɾվળΛ ૉૣ͘ܧଓతʹߦ͏ͨΊʹɺ ςετͷߴԽ͕ඞཁ ʂʂʂ (ʆɾωɾ´)ŝžŕ
ݕ౼ࣄ߲
ީิ • ࣍ͷ3ͭͷgemͷར༻Λݕ౼ • parallel_tests • test-queue • RRRSpecʢΫοΫύου͞Μʙʙʣ
ॴײ1 • test-queue >= parallel_tests • Master-WorkerύλʔϯΛ࠾༻͍ͯ͠ΔͷͰ ֤ϓϩηεͰ࣮ߦ͕࣌ؒภΓʹ͍͘ • ͲͪΒϚγϯεϖοΫͷ੍Λड͚Δ
ॴײ2 • test-queue ≒ RRRSpec • தنʢ1ͷϚγϯͰेఔʣͳΒ test-queueͷํ͕͓खܰ • େنͳΒࢄ࣮ߦɾεέʔϧΞτʹ
ΑΔॊೈͳӡ༻͕ՄೳͳRRRSpec
ฐࣾͰ • ࠷ॳʹtest-queueΛಋೖͯ͠Έͨ • 16ίΞͷϚγϯͰ16ฒྻͱ͔ͬͯΈͨ ͚Ͳظ͢Δ࣮ߦ࣌ؒʹͳΒͳ͔ͬͨ • ͱ͍͏Θ͚ͰRRRSpecΛಋೖ
݁Ռ
͔͜͜ΒΫοΫύου͞Μͷ ճ͠ऀʹͳΓ·͢
ΊͬͪΌ͘ͳͬͨ • 15ఔ·Ͱॖ • ϦϦʔεαΠΫϧ͕େ෯ʹॖ • ίετ10%ఔݮͨ͠ • ΫοΫύουͳ͠Ͱੜ͖͍͚ͯͳ͍ମʹ
ͨͩ݁ߏେมͩͬͨ • ͋Μ·Γใ͕ͳ͍ • GitHubʹυΩϡϝϯτ͕͋Δʹ͋Δ͕ ίʔυΛݟͳ͍ͱΘ͔Βͳ͍͜ͱଟ͍ • DockerͰಈ͘αϯϓϧ͋Δ͕͔͜͜Β ࣮ӡ༻࣌ͷߏΛΠϝʔδ͠ʹ͍͘
None
ؤுͬͯམͱ͠ࠐΜͩ • https://github.com/yasaichi/rrrspec-tutorial • ฐࣾͰͷ࣮ӡ༻࣌ͷߏʹ͔ͳΓ͍ۙ • ίϛοτΛॱʹ͍ͬͯ͘͜ͱͰҙຯ͕ Θ͔Δͣɾɾɾʂ
·ͱΊ
·ͱΊ • ςετ͕͔ͬͨͷͰRRRSpecΛಋೖͨ͠ • CDΞϧόϜ1ຕ -> 15 & ίετݮ •
ͨͩɺͦΕͳΓʹେมͩͬͨͷͰΦϨΦϨ αϯϓϧ༻ҙͨ͠Α
One more thing…
None
͓ΘΓ