Уже просмотрел этот вопрос, и это более или менее отражает то, как я сейчас запускаю весь свой пакет.
Кроме того, я настроил следующую задачу rake:
Rake::TestTask.new do |t|
t.name = "spec:models"
t.libs << "test"
t.pattern = "spec/models/*_spec.rb"
end
Но я заметил, что когда я запускаю ее с использованием time rake spec:models
, она завершается примерно за 2,36 секунды. Если я запущу все отдельные тесты в этом каталоге, используя ruby /path/to/spec.rb
(в настоящее время все они изолированы от ActiveRecord — пока нет постоянства, поэтому очень быстро), их совокупное общее время пользователя равно 2.36 секунд, но я также замечаю, что хотя выполнение каждого файла от начала до конца занимает 0,4 пользовательских секунды, фактическое время «теста», сообщаемое MiniTest, намного быстрее (так что весь мой пакет после загрузки зависимостей должен быть выполняется менее чем за 0,15 секунды, а не за 2,36 секунды).
Пример (для одного файла спецификации):
Started
11/11: 100% |======================================| Time: 00:00:00
Finished in 0.02223s
11 tests, 15 assertions, 0 failures, 0 errors, 0 skips
ruby path/to/spec.rb 0.43s user 0.06s system 88% cpu 0.559 total
Я подозреваю, что Rake перезагружает библиотеки между выполнением каждого теста, и это объясняет дополнительное время. Могу ли я в любом случае проверить это или запустить весь пакет без использования Rake?
Кстати, когда я ранее говорил «время пользователя», я имел в виду первое число, выводимое путем добавления time
к моей команде ruby для запуска одного тестового файла, поэтому time ruby / путь/к/spec.rb
= ruby путь/к/spec.rb 0,43 с пользователь 0,06 с система 88% ЦП 0,559 всего