Я новичок в Rails, и я знаю, что в нем есть такие вещи, как встроенное тестирование. Но я заинтересован в выполнении более простых тестов, которые эквивалентны вашему «printf», в C. Поэтому я тестирую страницу входа, которую я написал, и хочу отслеживать код, чтобы увидеть, как возвращаются каждая строка, например, методы поиска. Я пытаюсь выполнить вывод с помощью «puts», но я ничего не получаю в командной строке.Тестирование «Printf» в Rails
ответ
Я использую операторы puts все время, а также отладчик ruby! Здорово.
В рельсах вы можете сделать пару вещей. Я помещаю «puts» в свой код, и когда я запускаю скрипт/сервер в командной строке, вывод появляется в моем Terminal.app. У меня работает Mac, но я уверен, что есть аналогичный способ отслеживать активность вашего приложения на выбранной вами платформе.
Другой вариант - использовать оператор регистратора. вы можете позвонить
logger.debug("My #{variable}")
и найти эти инструкции прямо в файле log/development.log.
Кроме того, если вы используете систему * nix, вы можете использовать команду «хвост» для отслеживания последнего оператора, записанного в ваш журнал по одному за раз.
tail -f log/development.log
Таким образом, вы можете написать свои заявления и увидеть их так, как они происходят. Есть несколько уровней протоколирования:
logger.warn
logger.info
logger.debug
logger.fatal
каждой среды (разработка, тестирование, производство) будет определять, что «уровень» лесозаготовок будет называться, так что вы можете писать заявления войти волей неволей с logger.debug в развитии , но эти операторы журнала не будут записываться при развертывании на основе уровней журнала по умолчанию.
Вы знакомы с ruby-debug?
- Установить жемчужину
ruby-debug
. Запустите свой сервер с параметром -u.
скрипт/сервер -u
- Помещенный
debugger
в вашем коде, где вы хотите остановиться. - У вас будет доступ к консоли для ваших переменных, а также возможность перехода через ваш код.
Для получения более подробной информации проверьте ruby-debug documentation.
что-то вроде этого пользователя:
logger.info "method called with #{params.inspect}"
(вы можете поместить любую переменную внутри # {})
После того, как вы развлекаетесь с этим, проверить ./script/console и рубин -debug
Я сделал это раньше - с пассажиром, у вас нет сценария вывода/сервера, поэтому я написал это:
# extras/sexy_logging.rb
module SexyLogging
def log(text)
return true if RAILS_ENV == 'production'
string = "\e[0;32mLog:\e[m #{text}"
(100 - string.length).times do
string << ' '
end
string << "(#{caller.first})"
logger.debug string
end
end
ActiveRecord::Base.send :include, SexyLogging
ActionController::Base.send :include, SexyLogging
Тогда вы можете написать
log variable
или
log 'Testing user'
tail -f log/development.log |grep Log:
и только видеть, что вы регистрируете, строчно и с цветами.
- 1. Тестирование базы данных в Rails
- 2. Тестирование в консольных моделях Rails?
- 3. Тестирование Rails form_tag в Rspec
- 4. Тестирование приложения PORO в Rails
- 5. Тестирование представлений JavaScript в Rails
- 6. Тестирование ApplicationController before_filter в Rails
- 7. Тестирование по умолчанию в Rails
- 8. Rails Тестирование, несколько тестов
- 9. Тестирование расширение Rails FormBuilder
- 10. Тестирование Ruby on Rails
- 11. тестирование Rails json API
- 12. Тестирование интеграции Rails
- 13. Тестирование входа пользователя в Rspec в Rails
- 14. тестирование процесса входа в систему в rails
- 15. Тестирование интеграции на Rails 2.1
- 16. Функциональное тестирование Rails без миграций
- 17. Тестирование метода с RSpec? (Rails)
- 18. Функциональное тестирование API JSON Rails
- 19. Тестирование JSON-ответа POST Rails
- 20. Тестирование Rails + Webhooks с огурцом
- 21. Тестирование Ruby Gems под Rails
- 22. Тестирование пессимистического замка с Rails
- 23. Проверка и тестирование моделей Rails
- 24. Тестирование Метод приема ActionMailer (Rails)
- 25. Тестирование интеграции для запроса в Rails 5
- 26. Тестирование интеграции JavaScript в Ruby on Rails
- 27. Тестирование redirect_back с Rspec в Rails 5
- 28. Тестирование кода в Rails-двигателе с RSpec
- 29. Тестирование проверки клиента в представлениях Rails
- 30. Rails: тестирование работы Cron в среде разработки
Спасибо. Таким образом, заявления puts действительно работают, я просто писал плохой код, который означал, что он пропущен! – alamodey