Как я могу протестировать различные среды (например, разработка | тестирование | производство) в Cucumber? - PullRequest
3 голосов
/ 30 июля 2010

Возьми этот сценарий. У меня есть код отслеживания Google Analytics, и я хочу, чтобы он отображался только в производственном режиме. Поэтому у меня может быть два сценария, подобные этому:

Scenario: Don't embed tracking code in development or test mode
  Given the app is not in production mode
  When I go home
  Then I should really not see the tracking code

Scenario: Embed tracking code in production mode
  Given the app is in production mode
  When I go home
  Then I should really see the tracking code

Итак, хотя я знаю, как проверить текущую среду, и знаю, как настроить текущую среду в Rails или Sinatra, я не знаю, как запустить конкретный сценарий в конкретной среде. Это вообще возможно?

Ответы [ 2 ]

3 голосов
/ 12 августа 2010

Я думаю, что вы действительно должны попасть в действующий URL вашего сайта, используя огурец;потому что это то, что вы, вероятно, действительно хотите знать - работает ли мое отслеживание, как на самом деле?

Это сработало для меня, но вам нужно будет использовать Capybara (возможно, кто-то опубликует аналогичное веб-решение, если оносуществует).

Given /^the app is in production mode$/ do
  Capybara.current_driver = :selenium
  Capybara.app_host = 'http://www.joshcrews.com'
end

When /^I go home$/ do
  visit("http://www.joshcrews.com")
end

Then /^I should really see the tracking code$/ do
  page.body.should match /UA-7396376-1/
end
1 голос
/ 09 августа 2010

Вы должны быть в состоянии заставить среду в самом тестовом коде, что-то вроде ENV['RACK_ENV'] = 'test' ENV['RACK_ENV'] = 'production'

Хотя я бы посчитал это довольно неприятным запахом кода.

Раньше мне приходилось возиться со средами (http://richardconroy.blogspot.com/2010/01/issues-testing-sinatra-datamapper-app.html),, чтобы заставить тестовый код распознавать, что он должен выполняться в тестовых средах. Полагаю, это просто обратный ход.

И все же разве Google Analytics не отслеживает файлы cookie для конкретного сайта? Наличие файла cookie для отслеживания в вашей среде разработки / тестирования / организации не должно влиять на вашу статистику.

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