Генерация тестовых задач Rake динамически (на основе существующих тестовых файлов) в Rakefile

Я генерирую тестовые задачи динамически на основе существующих тестовых файлов в Rakefile. Предположим, у вас есть различные файлы модульного теста, названные в соответствии с шаблоном test_ .rb . Итак, что я делаю, это создаю задачу, названную по имени файла внутри пространства имен test. С помощью приведенного ниже кода я могу затем вызвать все тесты с помощью rake test:

require 'rake/testtask'

task :default => 'test:all'

namespace :test do

  desc "Run all tests"
  Rake::TestTask.new(:all) do |t|
    t.test_files = FileList['test_*.rb']
  end

  FileList['test_*.rb'].each do |task|
    name = task.gsub(/test_|\.rb\z/, '')
    desc "Run #{name} tests"
    Rake::TestTask.new(:"#{name}") do |t|
      t.pattern = task
    end
  end

end

Приведенный выше код работает, но кажется, что его слишком много для генерации простой задачи. И я до сих пор не придумал способ вывести текст описания на консоль, например устанавливает «Выполняется # {name} tests:»

Есть ли более элегантный способ, чем описанный выше метод?

EDIT : На самом деле я ожидал получить альтернативу циклу для динамического определения задач, но я полагаю, что rake lib не предоставляет для этого никакого помощника, поэтому я застрял в цикле.

5
задан jasoares 3 March 2012 в 00:04
поделиться