Se você estiver usando vários engines Rails para desenvolver um aplicativo modular complexo, pode ser irritante executar seus testes.
Mantemos nossos motores locais sob o diretório lib para que o Code Climate os veja e analise.
lib/engines/engine1
lib/engines/engine2
lib/engines/engine3
Adicionamos uma tarefa rake para ajudar a executar testes em todos eles.
# lib/tasks/test.rake
namespace :test do
desc "Tests engines under lib/engines"
task :engines, [:engine] => [:environment] do |t, args|
puts "Testing engines".ljust(80, ".")
paths = Dir.glob(File.join(Rails.root, "lib/engines/*"))
paths.each do |path|
next unless path.split("/").last == args[:engine] if args[:engine]
commands = []
commands << "cd #{path}"
commands << "bundle exec rake"
command = commands.join("; ")
puts "n#{command}nn"
exit 1 unless system(command)
end
exit 0
end
end
Isso nos permite testar nossos motores dessa forma.
rake test:engines
rake test:engines[engine1]