Я хочу начать тестировать JavaScript в своих приложениях для направляющих с qUnit, и я задаюсь вопросом, как сохранить тест JavaScript и страницей HTML исполнителя тестов при управлении версиями (я использую Мерзавца, конечно), но сохраните их от рабочего сервера, когда я развертываю приложение с Capistrano. Моя первая мысль состоит в том, чтобы позволить Capistrano отправить весь код по как обычный включая тестовые файлы и записать задачу удалить их в конце процесса развертывания. Это походит на вид взлома, все же. Существует ли более чистый способ сказать Capistrano игнорировать определенные части репозитория при развертывании?
Для этого есть много способов. Вы можете сохранить свои тесты в тестовой ветви приложения, как предлагает VonC, но это будет означать, что вы должны сделать все ваши изменения в основной ветке, а затем синхронизируйте ее с тестовой веткой. (Не без достоинств, но иногда и неприятностей)
Вы можете использовать файл .gitignore в своем каталоге.
Любой файл, который вы добавляете в это хранилище, не будет добавлен в ваш репозиторий. Поскольку capistrano просто извлекает и отправляет сообщения из вашего репозитория, отсутствие включенных файлов не позволит им попасть на ваш производственный сервер.
И последнее, но не менее важное: если вам нужны тестовые файлы в вашем основном репозитории для контроля версий, вы можете добавить рецепт в свой файл config / deploy.rb ..что-то вроде:
desc "Remove Test Files"
task :remove_test_files , :roles => :web do
sudo %{rm -f #{current_path}/public/javascripts/testfile.js}
sudo %{rm -f #{current_path}/public/javascripts/anothertestfile.js}
end
after 'deploy:remove_test_files'
И укажите файлы, которые вы хотите удалить, это удалит все файлы, которые вы хотите удалить при развертывании. :)
Все вышеперечисленное будет работать. Выберите метод, который вам подходит.
У вас могут быть эти тесты в тестовой ветке (в которой вы объединяете свою основную ветвь перед любым тестом)
Таким образом, когда вы просите Capistrano разверните то, что находится в вашей основной ветке, никакие тесты никогда не включаются.