Правильно ли хранить кассеты видеомагнитофона в репозитории?

Я разрабатываю интерфейс Ruby для одного API REST. Для тестирования использую rspec и vcr.
Все тесты используют учетные данные специально созданной для него учетной записи.
Не могу решить: правильно ли хранить кешированные ответы моих тестов (кассеты vcr) в репозитории, или разрешить пользователям и подписчикам записывать собственные кассеты?

Во имя Императора! Да начнется Священная война!


person user1291365    schedule 30.07.2013    source источник
comment
FWIW, автор VCR передает кассеты: twitter.com/myronmarston/status/199887944570503168. У него есть пост, где он более подробно рассказывает, но я не могу его найти.   -  person Dennis    schedule 10.09.2014


Ответы (2)


Пока вы не включаете какую-либо конфиденциальную информацию в запросы, я не вижу причин, по которым вы не можете их зафиксировать.

Но пока он будет работать нормально после первой пробной загрузки кассет, в любом случае на карту поставлено не так уж много.

Лично мне нравится идея проверки по историческим запросам на случай, если мне придется диагностировать какую-то непонятную машинную ошибку, изменяющую форматы моих запросов. (IE некоторая ошибка кодирования, когда вещи экранируются неправильно из-за динамически загружаемой библиотеки).

person Aaron Cronin    schedule 30.07.2013

Кассеты видеомагнитофона играют роль приспособления для ваших тестов. Вам нужно зафиксировать их в репозиторий, иначе ваши тесты не будут работать правильно на чужой машине или исправятся там только с сильной внешней зависимостью, что является нарушением принципа тестирования.

Конечно, вам нужно скрыть свои учетные данные от общественности или команды, сохранив при этом вышеперечисленное.

Решение — filter_senstive_data настройки и гем Фигаро.

Во-первых, Этот ответ Майрона на аналогичный вопрос может в значительной степени решить вашу проблему.

Для настройки видеомагнитофона

VCR.configure do |c|
  c.filter_sensitive_data("<SOMESITE_PASSWORD>") do
    ENV['SOMESITE_PASSWORD']
  end
end

Приведенный выше блок кода скопирован из ответа Майрона, потому что я хочу добавить больше позже

Подробнее об этом параметре см. в документе https://relishapp.com/vcr/vcr/v/2-5-0/docs/configuration/filter-sensitive-data

Теперь для ENV['SOMESITE_PASSWORD'] это могут быть настоящие учетные данные с помощью жем Figaro.

Установка Figaro создаст файл config/application.yml и добавит его в .gitignore. Таким образом, вы можете просто ввести свое имя пользователя и пароль для учетных данных, не рискуя разгласить их.

person Billy Chan    schedule 30.07.2013