Обнаружение исключений ELMAH во время интеграционных (WATIN + NUNIT) тестов - PullRequest
2 голосов
/ 23 января 2012

Вот мой сценарий:

  • У меня есть набор тестов WATIN GUI, которые выполняются на веб-приложении ASP.net MVC3 для каждой сборки в CI.Тесты проверяют, что GUI ведет себя так, как ожидалось, при наличии определенных входных данных.

  • Веб-приложение использует файлы ELMAH xml для регистрации исключений.

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

Ответы [ 3 ]

1 голос
/ 27 января 2012

Почему бы не перейти к представлению отчетов Elmah (возможно, elmah.axd) в настройке теста WatiN и прочитать отметку времени последней зарегистрированной ошибки.Затем сделайте то же самое после теста и подтвердите, что временные метки совпадают.

Было бы легко прочитать URL этой самой последней ошибки из той же строки и записать ее в сообщении о вашем неудачном утверждении, которое затем появилось бы в выводе вашей nunit.

1 голос
/ 24 января 2012

Elmah запускается в веб-приложении, которое является отдельным процессом от бегуна.Нет простого способа напрямую перехватить необработанные ошибки.Первое, что приходит на ум, - это посмотреть папку (App_Data?), В которой хранятся отчеты об ошибках Elmah XML.

Вы можете очистить отчеты об ошибках из папки при запуске каждого теста и проверить, пуста ли она вконец теста.Если папка не пуста, вы можете скопировать отчет (ы) об ошибках в результаты теста.

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

Вместо чтения XML-файлов с диска вы можете настроить Elmah для входа в базу данных и чтения отчетов об ошибках.оттуда.Это поможет вам обойти проблемы с блокировкой файлов, если они возникнут.

0 голосов
/ 08 февраля 2012

Вот что делают мои тесты:

  1. Во время настройки теста запишите время
  2. Выполните тест
  3. Во время завершения теста перейдите к (elmah.axd / download) и проанализируйте ELMAH CSV
  4. Отфильтруйте строки, которые не соответствуют пользователю, который выполняет тесты WATIN, и строки, где время UNIX было раньше записанного времени в (1)
  5. Еслиесть строки, сообщающие сообщение об исключении и URL-адрес ошибки в NUNIT.

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

...