Как я могу увидеть, что на самом деле происходит при выполнении Test :: Unit test? - PullRequest
1 голос
/ 29 июня 2009

В приложении Rails у меня есть функциональный тест Test :: Unit, который не проходит, но вывод на консоль не говорит мне особо.

Как просмотреть запрос, ответ, флэш-память, сеанс, набор переменных и т. Д.?

Есть ли что-то вроде ...

rake test specific_test_file --verbose

Ответы [ 5 ]

3 голосов
/ 29 июня 2009

Вы можете добавить операторы put в ваш тестовый пример, как это было предложено, или добавить вызовы Rails.logger.debug () в код своего приложения и просмотреть журнал log / development.log, чтобы отслеживать, что происходит.

2 голосов
/ 29 июня 2009

В вашем тесте у вас есть доступ к куче ресурсов, которые вы можете использовать для отладки вашего теста.

 p @request
 p @response
 p @controller
 p flash
 p cookie
 p session

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

Что это означает на практике? Если что-то не работает в вашем действии, и ваше действие вызывает 3 метода Model, вы сможете легко изолировать проблему, просто взглянув на модульные тесты. Если один (или более) модульный тест не пройден, то вы знаете, какой метод виноват. Если все модульные тесты пройдены, проблема заключается в самом действии, но отладка должна быть довольно простой, поскольку вы уже тестировали методы отдельно.

1 голос
/ 29 июня 2009

при неудачном тесте используйте p @request и т. Д. Это ужасно, но может работать

0 голосов
/ 29 июля 2012

Плавный способ - использовать pry и pry-nav драгоценные камни. Не забудьте включить их в свою группу тестовых камней. Я использую их и в группе разработчиков. Самое замечательное в pry и pry nav состоит в том, что вы можете просматривать свой код с помощью консоли, чтобы вы могли не только видеть код во время его выполнения, но и вводить команды консоли во время теста.

Вы просто вводите binding.pry в тех местах кода, которые вы хотите запустить на консоли. Затем, используя команду 'step', вы можете построчно перемещать код по мере его выполнения.

0 голосов
/ 30 апреля 2010

Ответ на отдельный вопрос предлагается

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