让Junit重用Tomcat context.xml

让Junit重用Tomcat context.xml,tomcat,junit,Tomcat,Junit,我不是java方面的专家,但现在我继承了一些我需要使用的代码。我的目标是运行源代码测试套件。测试所需的(创建)bean需要一些环境设置。这些设置位于tomcat根目录/conf/context.xml中。tomcat使用这些环境设置来部署web应用程序 我想在junit中重用tomcat root dir/conf/context.xml,或者让testsuite正常工作。是否有一些标准的方法来解析junit的context.xml?如果你能帮我,我将不胜感激 有一种解析XML的标准方法,因此您

我不是java方面的专家,但现在我继承了一些我需要使用的代码。我的目标是运行源代码测试套件。测试所需的(创建)bean需要一些环境设置。这些设置位于tomcat根目录/conf/context.xml中。tomcat使用这些环境设置来部署web应用程序


我想在junit中重用tomcat root dir/conf/context.xml,或者让testsuite正常工作。是否有一些标准的方法来解析junit的context.xml?如果你能帮我,我将不胜感激

有一种解析XML的标准方法,因此您可以自由地阅读任何需要的文件并解析XML


我假设您希望对数据源或类似的内容进行JNDI查找。当然,问题是如果你坚持这条路线,你就会和Tomcat结合在一起

JUnit4提供了规则外部资源来处理资源:请参阅。

我们采用了使用嵌入式glassfish服务器的方法。这不会重用tomcat context.xml,但可以访问外部资源

解决了这个问题。它可以处理Tomcat的配置文件,并创建与Tomcat相同的JNDI环境,但无需启动服务器。因此,您可以在e中运行依赖于Tomcat的JNDI环境的类。GJUnit测试

TomcatJNDI tomcatJNDI = new TomcatJNDI();
tomcatJNDI.processContextXml(new File("tomcat-root-dir/conf/context.xml");
tomcatJNDI.start();
然后,类可以像在Tomcat中运行一样查找数据源


您可以创建本地构建/系统特定变量,指定您在哪里拥有tomcat并从那里开始工作。感谢您的评论。是的,您关于JNDI查找的假设是正确的。