Тесты rspec под jruby на Windows работают очень медленно - PullRequest
4 голосов
/ 07 декабря 2011

Мы рассматриваем возможность перехода на jruby, и в рамках этого изучали подходы и структуры тестирования. Я тестировал rspec на своей локальной машине для разработки и обнаружил, что общее время, необходимое для выполнения 2 тестов для одного класса с двумя очень простыми методами, составляет 7-8 секунд. Под простым я подразумеваю один установщик и тот, который возвращает true.

Вывод rspec показывает, что тесты выполняются примерно за 2 секунды, поэтому 5-6 секунд общего времени тратится на загрузку и инициализацию rspec. Я бегу из командной строки, используя

C:\rubycode\rspec_tutorial>rspec --profile user_spec.rb
..

Top 2 slowest examples:
  User User should NOT be in any roles not assigned to it
    0.023 seconds ./user_spec.rb:15
  User User should be in any roles assigned to it
    0.006 seconds ./user_spec.rb:10

Finished in 2 seconds
2 examples, 0 failures

У меня работает jruby 1.6.5 и rspec 2.7.1

Я читал этот пост, Быстрее RSpec с JRuby но ему уже более 1,5 лет, и ответ касается запуска наборов тестов, а не коротких пакетов небольшого числа тестов локально, чтобы помочь TDD , как мы и хотим развивать. В дальнейшем мы добавим CI-сервер.

Мой вопрос: это ожидаемое время выполнения? Есть ли способ ускорить запуск тестов rspec на локальной машине разработки под JRUBY?

EDIT:

Наибольший прирост производительности был при переключении с 64-битной «серверной» JVM на 32-битный «клиентский» режим. Я увидел, что время выполнения простого теста сократилось на 40%. Я тоже получил Nailgun, но производительность менялась. Ссылка, приведенная ниже banzaiman, была наиболее полезной

1 Ответ

1 голос
/ 07 января 2012

Это не загрузка RSpec, но это время запуска JVM, которое вы чувствуете.

См. https://github.com/jruby/jruby/wiki/Improving-startup-time для получения дополнительной информации.

...