Ruby - Fremskynde langsom enhedstestning for en skinnerapp på Windows?

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg er på udkig efter den hurtigste måde at køre enhedsprøver til en skinnerapp på en Windows-maskine, helst automatisk. Mit miljø er:



  • Ruby 1.8.7

  • Rails 3.0.9

  • ZenTest 3.6.0 (de seneste versioner 4.6.2/4.5.0 mislykkedes, da jeg forsøgte dem af en eller anden grund)



I øjeblikket kører de meget langsomt, f.eks. 30'erne til at køre en pakke med 12 meget enkle enhedsforsøg, hvor tiden for det meste tilbragte start rubin det virker. Prøverne selv tager 5'er at køre i henhold til autotest. For nogen plejede at køre 100'ers test i 10'erne, er dette vred og gør TDD uudviklet. Jeg ville endda være glad, hvis jeg kunne genbruge en enhedsprøve på mindre end 5s ...


Jeg har søgt andre spørgsmål. Nogle er gamle og nogle konflikter. Hvad er den seneste accepterede visdom om dette? Her er de forslag, jeg er opmærksom på:



  • Brug faster\_require og/eller faster\_gem\_script (selvom jeg havde problemer med at få det til at fungere ...)

  • Prøv JRuby (selvom det virker som langsom start?)

  • Opgrader rubin til 1.9.x

  • spork?

  • blunde?

  • skinner-dev-boost?



At få en Linux-boks (eller VMware) er ude af spørgsmålet i øjeblikket, men bliver mere fristende ...

Bedste reference


Du kan måske se på noget som spork (og en blog post). [1] [2]

Andre referencer 1


Jeg skriver mine tests ved hjælp af rspec, og jeg har haft stor succes, hvilket gør mine test kører meget hurtigere med spork. Grundene til, at testskinnerne kører så langsomt, er på grund af den tid det tager at laste skinner og alle de andre ædelstene, som du bruger i din app.


Hvis du også kan opgradere til rubin 1.9.2, ville det være ret nyttigt.