Пользовательская переменная инициализатора для тестов Rails - PullRequest
2 голосов
/ 01 марта 2011

У меня есть пользовательский инициализатор, который настраивает провайдера облачного хранилища (Google, AWS, Rackspace).Я создаю приложение, которое я хочу развернуть различными разработчиками (используя разных поставщиков хранилищ), и я хотел бы иметь возможность тестировать каждого облачного провайдера индивидуально.В настоящее время я трижды просматриваю файл инициализатора и комментирую / раскомментирую каждого провайдера перед запуском rake test.Можно ли передать параметр rake test, который я затем смогу использовать в своем инициализаторе для потока управления (т.е. загрузить определенный инициализатор)?Что-то вроде:

rake test --attached aws
rake test --attached google
rake test --attached rackspace

Вот как выглядит мой инициализатор:

# config/initializers/attached.rb

Attached::Attachment.options[:medium] = :aws
Attached::Attachment.options[:credentials] = "#{Rails.root}/config/aws.yml"

Attached::Attachment.options[:medium] = :google
Attached::Attachment.options[:credentials] = "#{Rails.root}/config/google.yml"

Attached::Attachment.options[:medium] = :rackspace
Attached::Attachment.options[:credentials] = "#{Rails.root}/config/rackspace.yml"

Спасибо!

1 Ответ

2 голосов
/ 05 марта 2011

Я бы порекомендовал использовать для этого env-vars.

$ ATTACHED="aws" rake test

, а затем

# config/initializers/attached.rb

attached = ENV['ATTACHED'] || "aws"

case attached
when "aws"
  Attached::Attachment.options[:medium] = :aws
  Attached::Attachment.options[:credentials] = "#{Rails.root}/config/aws.yml"
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...