2012-06-19 10 views
10

Śledziłem this tutorial on speeding up rspec with spork, a ja jestem na pudełku win7 x64 z rubinem 1.9.2 i szynami 3.2.5. Wszystko działa, ale test nadal działa powoli. Czy po prostu nie robi się zbyt dużo na oknach, ponieważ system operacyjny nie obsługuje rozwidlania?Rspec wciąż wolno w Windows nawet ze Sporkem

Czy mogę jeszcze coś zrobić, aby przyspieszyć działanie?

Ja także found this similar SO question i obejrzałem video by Corey Haines on fast testing. Podobało mi się wideo, ale nie mogę oprzeć się wrażeniu, że coś jest nie tak, kiedy stan naszych narzędzi (powolne testy z powodu czasu uruchamiania szyny, w tym przypadku) dyktuje, jak budujemy nasz kod. Gdyby ten wolny czas startowy nie istniał, czy byłaby potrzeba jego metod? Z drugiej strony, gdy testy trwają 10-30 sekund, traci się wiele korzyści z TDD, że widzę również jego punkt widzenia.

W przypadku jest to istotne, oto wyjście konsola z Spork jak rspec został wykonany kilka razy:

$ bundle exec spork 
Using RSpec 
    -- Starting to fill pool... 
    Wait until at least one slave is provided before running tests... 
    ** CTRL+BREAK to stop Spork and kill all ruby slave processes ** 
Spork is ready and listening on 8989! 
    -- Rinda Ring Server listening for connections... 

    -- build slave 1... 
Preloading Rails environment 
    -- build slave 2... 
Preloading Rails environment 
Loading Spork.prefork block... 
Loading Spork.prefork block... 
Running tests with args ["--color"]... 
    --> DRb magazine_slave_service: 1 provided... 
    --> DRb magazine_slave_service: 2 provided... 
    <-- take tuple(2); slave.run... 
    -- (2);run done 
Done. 

    -- build slave 2... 
Preloading Rails environment 
Loading Spork.prefork block... 
Running tests with args ["--color"]... 
    <-- take tuple(1); slave.run... 
    -- (1);run done 
Done. 

    -- build slave 1... 
Preloading Rails environment 
Loading Spork.prefork block... 
    --> DRb magazine_slave_service: 2 provided... 
+0

Ile przykładów trwa 30 sekund, aby uruchomić? Spork nie pomoże ci przyspieszyć czasu twoich testów. Sprawi, że będą działać w znacznie krótszym czasie. – jdoe

+0

Mówiłem ogólnie. W moim przykładzie jest tylko jeden test, który sam w sobie wykonuje się w ułamku sekundy, ale trwa 5-10 sekund, aby faktycznie uruchomić, w tym czas ładowania szyn – Jonah

+2

Bieganie szpiegowania w oknach jest bezużyteczne, dlaczego to robisz? Nic nie pomoże ci, ruby ​​w oknach jest powolne, a większość narzędzi to tylko linux/mac. Jeśli zdecydujesz się wejść w okna, musisz zaakceptować fakt, że Ruby jest w tym miejscu dość urocza. –

Odpowiedz

1

Kodeks Shop buduje MRI Ruby zoptymalizowany dla systemu Windows można znaleźć więcej na ten temat na ich Website lub ich Github Repo.

Proponuję także oglądanie this talk o rozwijająca szyn aplikacje na Windows

0

Przedtem miałem jako pacjenta, jak ktokolwiek inny w prowadzeniu rspec badania przy użyciu systemu Windows! Rake (s) zajmuje zbyt wiele mojego czasu i nie było już tak naprawdę zdrowe. Rezultaty zostały opóźnione, ponieważ rozwój Windowsa był tak trudny. I taka jest prawda. Właśnie dlatego przełączyłem się na Linuksa. Czasami jednak problemy z używaniem Linuksa (kłopotliwa instalacja niektórych rzeczy i wiele więcej). Po prostu pozostałem cierpliwy, dopóki nie przerzuciłem się na MAC, który jest o wiele lepszy.

Jeśli naprawdę konsekwentnie używasz systemu Windows do ROR, wówczas testowanie będzie wolne, jeśli będzie wiele modułów do przetestowania.

Jestem też pewien, że testowanie Selenium będzie katastrofą w Windowsie.

Ale możesz również spróbować dodać inne rzeczy, takie jak używanie GUARD (dla szybszego wykonywania skryptów testowych), w których nie musisz wielokrotnie wpisywać numeru rspec spec.

Patrz: https://github.com/guard/guard

Dla Spork, no ja też wystąpił błąd o nim (przed) ... gdzie ja testuje kilka plików spec używać Linuksa, a to był tak powolny, że naprawdę nienawidził za pomocą to.

I taka jest rzeczywistość.

Sprawdź, jak ja Spork skonfigurowany do pracy RSpec:

spec_helper.rb

Patrz: https://github.com/xirukitepe/animelist/blob/master/spec/spec_helper.rb

0

chciałbym użyć linux VM dla tego typu rzeczy ...

Największy wzrost prędkości testu, jaki udało mi się osiągnąć dzięki RSpec, miał na celu zagwarantowanie, że nigdy nie trafi do bazy danych, chyba że jest to absolutnie konieczne.

Powiązane problemy