Rspec все еще медленно в Windows даже со Spork

Я следил за этот учебник по ускорению rspec со spork, и я нахожусь в коробке win7 x64 с ruby ​​1.9.2 и рельсами 3.2.5. Все работает, но тест все равно выполняется медленно. Разве spork просто не делает много на окнах, потому что ОС не поддерживает forking?

Есть ли что-нибудь еще, что можно сделать, чтобы ускорить процесс?

Я также нашел этот похожий вопрос SO и наблюдал за видео от Corey Haines по быстрому тестирование. Мне понравилось видео, но я не могу не чувствовать, что что-то не работает, когда состояние наших инструментов (медленные тесты из-за времени запуска рельсов, в данном случае) диктует, как мы структурируем наш код. Если бы это медленное время запуска не существовало, была ли бы необходимость в его методах? С другой стороны, когда тесты проходят 10-30 секунд, многие из преимуществ TDD теряются, и я вижу его точку зрения.

В случае, если это актуально, здесь консольный вывод из spork как rspec выполнялся пару раз:

    $ 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...

Ответ 1

В Code Shop создается MRI Ruby, оптимизированный для Windows, вы можете найти больше об этом на своем веб-сайте или их Github Repo.

Я также предлагаю вам смотреть этот разговор о разработке приложений rails на Windows

Ответ 2

Попробуйте проверить http://railscasts.com/episodes/413-fast-tests. Это показывает множество различных инструментов, которые могут значительно улучшить скорость вашего тестового набора!

Ответ 3

Раньше я был так же терпелив, как и любой другой, при выполнении тестов RSPEC с использованием Windows! Выполнение рейка (ов) занимает слишком много времени, и оно не было действительно здоровым. Конечные результаты были отсрочены, потому что разработка в Windows была такой болью. И это правда. Вот почему я перешел на Linux. Но иногда все еще были проблемы с использованием Linux (сложность установки некоторых продуктов и т.д.). Я просто оставался терпеливым, пока не переключился на MAC, что намного лучше.

Если вы действительно согласны в использовании Windows для ROR, тогда запуск тестов будет таким медленным, если есть много модулей для тестирования.

Я также уверен, что тестирование Selenium будет катастрофой в Windows.

Но вы также можете попытаться добавить некоторые другие вещи, например, используя GUARD (для более быстрого выполнения тестовых скриптов), в котором вам не нужно набирать rspec spec несколько раз.

Смотрите: https://github.com/guard/guard

Для spork, хорошо, я также столкнулся с ошибкой об этом (раньше)... где я тестирую некоторые файлы спецификаций с помощью Linux, а затем это было так медленно, что я действительно ненавидел его использование.

И это реальность.

Посмотрите, как я настроил SPORK для работы с rspec:

spec_helper.rb

Смотрите: https://github.com/xirukitepe/animelist/blob/master/spec/spec_helper.rb

Ответ 4

Я бы использовал виртуальную виртуальную машину для такого рода вещей...

Самый большой рост скорости тестирования, который мне удалось получить с RSpec, заключался в том, чтобы он никогда не попадал в базу данных, если это абсолютно необходимо.