Как заставить огурец и капибару использовать пути http:// вместо путей file:///?

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

С помощью «покажи мне страницу» я сузил его до того факта, что когда огурец что-то делает, он делает это через путь к файлу (например, file:///path/to/app/tmp/capybara/capybara-201107151148029152254898.html) вместо пути http (например, http://localhost:3000/).

Почему мои тесты на огурцы проходят по путям к файлам, а не по http-путям; и как исправить эту ситуацию?


person MacSean    schedule 15.07.2011    source источник


Ответы (1)


Я могу только догадываться, что Capybara реализует «покажи мне страницу» в виде следующих шагов:

  1. Возьмите исходный код HTML с текущей страницы и запишите его в файл.
  2. Откройте этот HTML-файл

Я предполагаю, что ваши тесты отлично работают с вашим приложением, используя HTTP. (Вы всегда можете убедиться в этом, просмотрев свои файлы журналов.) Но «покажи мне страницу» не может просто открыть URL-адрес, который он тестировал, потому что его содержимое может меняться от запроса к запросу.

Пример: тест публикует комментарий, отправляя его в /comments. Если по какой-либо причине это не удастся и Capybara откроет /comments (URL-адрес, вызвавший исключение), он выдаст запрос GET и не сможет представить вам увиденный контент.

person awendt    schedule 14.11.2011
comment
Это правильно. save_and_open_page сохраняет содержимое http в локальный файл и открывает его. - person Matt Connolly; 02.03.2012