Заставить Junit повторно использовать Tomcat context.xml - PullRequest
1 голос
/ 03 января 2011

Я не эксперт в Java, но сейчас я унаследовал некоторый код, который мне нужен, чтобы работать. Моя цель - запустить набор исходных тестов. Бины (создание), необходимые для тестов, требуют некоторых настроек среды. Эти настройки находятся в tomcat-root-dir / conf / context.xml. Эти параметры среды используются tomcat для развертывания веб-приложения.

Я хочу повторно использовать tomcat-root-dir / conf / context.xml с junit или иным образом заставить тестовый набор работать. Есть ли какой-то стандартный способ разбора context.xml для junit? Буду признателен, если вы поможете мне с этим.

Ответы [ 4 ]

1 голос
/ 05 января 2011

JUnit4 предоставляет правило ExternalResource для обработки ресурса: см. Основное правило ExternalResource .

1 голос
/ 03 января 2011

Существует стандартный способ синтаксического анализа XML, поэтому вы можете свободно читать любой файл и анализировать XML.

Я предполагаю, что вам нужен JNDI-поиск источника данных или чего-то подобного,Проблема, конечно, заключается в том, что вы будете связаны с Tomcat, если будете продолжать в том же духе.

0 голосов
/ 16 ноября 2017

TomcatJNDI решает эту проблему.Он может обрабатывать файлы конфигурации Tomcat и создает ту же среду JNDI, что и Tomcat, но без запуска сервера.Таким образом, вы можете запускать классы с зависимостями в среде JNDI Tomcat, например, в тестах JUnit.

TomcatJNDI tomcatJNDI = new TomcatJNDI();
tomcatJNDI.processContextXml(new File("tomcat-root-dir/conf/context.xml");
tomcatJNDI.start();

Тогда ваши классы могут искать источник данных, как если бы они выполнялись в Tomcat.о TomcatJNDI можно найти здесь.

0 голосов
/ 05 января 2011

Мы выбрали подход с использованием встроенного сервера Glassfish.Это не будет повторно использовать tomcat context.xml, но будет иметь доступ к внешним ресурсам.

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