2014-11-21 6 views
0

Я бы добавил некоторые тесты JUnit в проект Eclipse, который тестировал функциональность на сервере в веб-проекте Eclipse.Автоматизация тестов JUnit для функциональности на сервере в Eclipse?

Я могу запустить веб-приложение из Eclipse на внешнем сервере Tomcat (Run As | Run on Server), а затем запустить тесты JUnit также изнутри Eclipse, в то время как первый по-прежнему работает.

Я понимаю, что должно быть возможно полностью автоматизировать оба этапа как один, используя сервер Jetty (вместо Tomcat), который запускается внутри Eclipse и который может быть загружен, например. в @BeforeClass (или ранее).

Поддерживает ли Eclipse этот тип модульного тестирования из коробки. В настоящее время я использую Eclipse Java EE IDE для веб-разработчиков (версия: Kepler Service Release 2).

ответ

1

Eclipse (и любая другая IDE, если на то пошло) не мешает вам ничего делать в модульных тестах. На самом деле это тоже не очень помогает, что является основой вашей проблемы: Eclipse не запускает сервер для ваших модульных тестов. То же самое верно для всех других IDE, о которых я знаю.

Вместо этого вам необходимо прочитать, как embed Jetty in a Java application (= ваши модульные тесты), поэтому первый тест может запустить сервер. Используйте ленивый инициализации шаблона для этого:

private static JettyManager jetty; 

@Before public void startServer() { 
    if(null == jetty) { 
     jetty = new JettyManager(); 
     jetty.start(); 
    } 
} 

Вы можете использовать JVM выключения крюк, чтобы аккуратно остановить сервер.

Я использую тот же шаблон для создания базы данных, которая должна использоваться во время тестов, чтобы убедиться, что она чистая. Для этого I embed an H2 database.

Если вы хотите больше автоматизации, посмотрите на Maven. Он может запускать интеграционные тесты (включая развертывание WAR перед началом тестов). См. http://www.benoitschweblin.com/2013/03/run-jetty-in-maven-life-cycle.html

С помощью Maven Cargo plugin вы можете развернуть почти каждый контейнер J2EE.

Или использовать Дженкинс: http://programmaticponderings.wordpress.com/2013/11/13/building-a-deployment-pipeline-using-git-maven-jenkins-and-glassfish-part-2-of-2/

+0

Жаль, не более встроенной поддержки. – Drux

+1

Возможно, вам стоит взглянуть на Maven, который может выполнять интеграционные тесты (включая развертывание WAR перед началом тестов). См. Http://www.benoitschweblin.com/2013/03/run-jetty-in-maven-life-cycle.html С плагином Maven Cargo вы можете развернуть почти каждый контейнер J2EE: http: //cargo.codehaus .org/Maven2 + плагин Или используйте Jenkins: http://programmaticponderings.wordpress.com/2013/11/13/building-a-deployment-pipeline-using-git-maven-jenkins-and-glassfish-part-2- из-2 / –

Смежные вопросы