Установите RAILS_ENV для тестовых задач рейка - PullRequest
0 голосов
/ 19 августа 2011

Я сделал этот патч для своего test_helper.rb

ENV["RAILS_ENV"] = ENV["RAILS_ENV_TEST"] || "test"

Это работает, потому что я могу запустить

RAILS_ENV_TEST=test_dan ruby -Itest test/unit/post_test.rb

но я хочу иметь возможность запускать все виды тестов, включая rake db:test:clone, но без использования среды test. Как я могу это сделать?

1 Ответ

2 голосов
/ 19 августа 2011

Большинство rake-задач с пространством имен «test» будут выполняться только в вашей тестовой среде, а не в других средах.Она жестко запрограммирована в задачу, чтобы смягчить потенциально разрушительные воздействия, которые они могут оказать в такой среде, как производство.

Вы можете видеть, что эти задачи не учитывают среду, в которой они вызываются в источник .

Если вы хотите запускать эти задачи в любой среде, в которую вы хотите, лучше всего воссоздать эти задачи и передать в среду.

namespace :any_environment_test do
  task :load => :environment do
    ...
  task :clone => :environment do
    ...

В этомВ конкретном случае это немного сложнее, так как кажется, что вы хотите клонировать из любой среды в любую среду.Если это так, у вас, вероятно, должны быть две переданные переменные, такие как FROM_ENV= и TO_ENV=.

Длинная история, вы собираетесь писать собственные задачи, но можете вдохновить себя нассылка, которую я разместил выше.:)

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