Как вы проводите удаленное тестирование веб-приложений? - PullRequest
3 голосов
/ 21 августа 2008

Я знаком с TDD и использую его как на рабочем месте, так и в домашних веб-приложениях. Однако каждый раз, когда я использовал TDD в веб-приложении, я имел роскошь иметь полный доступ к веб-серверу. Это означает, что я могу обновить сервер, а затем запустить свои модульные тесты прямо с сервера. Мой вопрос: если вы используете сторонний веб-хостинг, как вы запускаете на них свои юнит-тесты?

Можно утверждать, что если ваше приложение хорошо спроектировано, а процесс сборки продуман и автоматизирован, запуск модульных тестов на рабочем сервере не требуется, но лично мне нравится спокойствие, зная, что все по-прежнему " зеленый "после серьезного обновления.


Для всех, кто ответил «просто протестируйте перед развертыванием» и «у вас нет промежуточного сервера?», Я понимаю, откуда вы пришли. У меня есть промежуточный сервер и настроенный процесс CI. Мои модульные тесты выполняются, и я проверяю, что все они проходят перед обновлением для производства

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

Здесь я спрашиваю, есть ли способ, если только для удовлетворения моих собственных компульсивных желаний, запустить модульное тестирование на сервере, на который я не могу устанавливать приложения или удаленно (например, на тот, который у меня будет только Доступ по FTP для обновления файлов)?

Ответы [ 5 ]

3 голосов
/ 21 августа 2008

Я думаю, мне, вероятно, придется утверждать, что выполнение модульных тестов на вашем производственном сервере на самом деле не является частью TDD, потому что к тому времени, когда вы технически развернетесь в своей производственной среде, вы уже прошли "разработку".

Я довольно сторонник TDD, и когда я проповедую преимущества для клиентов, я часто говорю: «Вы не можете наполовину принять TDD, это все или ничего» * ​​1003 *

То, что вам, вероятно, следует иметь, - это какая-то форма автоматического тестирования, которое вы выполняете «после» развертывания, но они не являются частью TDD.

Может быть, вам стоит снова взглянуть на свой процесс.

1 голос
/ 21 августа 2008

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

1 голос
/ 21 августа 2008

Для уточнения: какой у вас доступ к вашему веб-серверу? Только FTP или WebDAV? От вашего вопроса, я предполагаю, что доступ по SSH не доступен - вы удаляете файлы в каталоге для развертывания. Это правильно?

Если это так, ответ на юнит-тестирование скорее всего «сделайте это до развертывания». Вы можете настроить функциональное тестирование с помощью автоматизированного инструмента, такого как Selenium , для удаленного тестирования вашего приложения через веб-интерфейс, но это не совсем модульное тестирование в том смысле, что вы ограничены тестированием системы в целом.

Рассматривали ли вы настройку промежуточного сервера, возможно, в качестве экземпляра VMWare, который отражает или, по крайней мере, имитирует вашу среду развертывания?

1 голос
/ 21 августа 2008

Вы можете написать функциональные тесты, например, WATIR , WATIN или Selenium , которые проверяют то, что возвращается на странице ответа после публикации определенных данных формы или запроса конкретные URL.

0 голосов
/ 21 августа 2008

Я написал тестовые инструменты для сайтов, использующих python и httplib / urllib2. Обычно это было бы излишним, но в таких случаях это подходило. Не уверен, что он будет общего назначения.

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