Ускорение rspec путем удаления файлов tmp (или любого другого типа?) - PullRequest
1 голос
/ 22 декабря 2011

Я хочу ускорить наши тесты на применение рельсов. У нас уже около 600 тестов, они становятся все выше и начинают работать долго.

Я знаю, что есть несколько инструментов для ускорения тестов. Некоторые из них мы уже используем, некоторые мы начнем использовать, и я совершенно уверен, что некоторые мы не сможем использовать из-за нашей версии rails (2.3.8).

Но я пришел сюда по другой причине. Несколько недель назад я начал использовать компьютер, который некоторое время не запускал наши тесты, и тесты выполнялись действительно очень быстро. Вместо обычных 20-30 минут это было сделано за 5-7 минут, если не меньше.

Сначала я подумал, что что-то не так, но чем больше я бегал, тем медленнее и медленнее становилось, пока мне снова не потребовалось 20-30 минут на бег.

Теперь тесты были одинаковыми, инструменты были и одинаковы. Я не могу придумать ничего кардинально изменившегося, кроме того факта, что я некоторое время не запускал тесты (несколько недель ~), а затем снова запускался. Может ли это быть что-то, связанное с файлами tmp, или что-то в этом роде, которое можно удалить или настроить, чтобы ускорить выполнение наших тестов?

Спасибо за вашу помощь.

1 Ответ

1 голос
/ 22 декабря 2011

Несколько советов по ускорению тестирования:

  • Убедитесь, что вы используете транзакционные фикстуры

  • Попробуйте только инициализировать вместо сохранения объектов вбаза данных

  • поставить config.whiny_nils = false на свой config/environments/test.rb

  • Если вы используете Devise, поставьте config.stretches = Rails.env.test? ? 1 : 10 на свой config/initializers/devise.rb

  • Обновление до 1.9.3

PS: только что увидел, что вы используете Rails 2.3.8, так что это не сработает для вас, но я оставлю это здесь на случай, если кто-то захочет использовать:

  • Поместите этот патч в ваше приложение (не забудьте удалить его при обновлении до 3.2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...