Мы рассматриваем возможность перехода на 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, была наиболее полезной