запустить junit как сервер и внести изменения? - PullRequest
0 голосов
/ 28 апреля 2011

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

С помощью jrebel я могу напрямую применять изменения источника.Jetty Server таким образом, чтобы я мог вносить изменения динамически и затем повторно запускать тесты без необходимости перезапуска сервера?

1 Ответ

1 голос
/ 28 апреля 2011

Это зависит от вида изменений, которые вы хотите внедрить.

Тем не менее, я считаю, что здесь есть более глубокая проблема. Перезапуск Jetty - это правильное решение с точки зрения качества тестирования. Это гарантирует, что каждый тест начинается с чистой страницы, тем самым сводя к минимуму риск взаимозависимости тестов. С другой стороны, это дорого (по времени) и замедляет работу вашего пакета.

На вашем месте я бы рассмотрел это следующим образом: я проведу рефакторинг кода, который я хочу протестировать (предположительно: сервлеты), чтобы он не зависел от инфраструктуры Jetty и мог работать автономно. Например, если у меня есть класс сервлета SomeServlet с его методом doGet(), я реорганизую его так, чтобы он реализовал MyServelt, чей goGet() принимает параметры MyRequest, MyResponse.

Как только вы это сделаете, вы можете выполнить модульное тестирование MyServlet без сервера Jetty. Это позволит вам не только быстрее тестировать, но и упростить сеансы отладки и сделать ваши компоненты более разъединенными. Конечно, вам нужно будет добавить некоторый сантехнический код: класс, который адаптирует интерфейс servelt к объекту MyServelt (посредством делегирования).

...