Unit testing 未使用嵌入式tomcat 7实例化托管bean

Unit testing 未使用嵌入式tomcat 7实例化托管bean,unit-testing,jsf,tomcat,Unit Testing,Jsf,Tomcat,我有一个相当小的JSF2应用程序,使用myfaces和primefaces。它在Eclipse中被设置为Tomcat7服务,运行良好,包括ajax和works 但是,我想对它进行单元测试,所以我添加了Tomcat7作为测试依赖项,并创建了相应的启动代码 // create tomcat Tomcat tomcat = new Tomcat(); tomcat.setPort(HTTP_PORT); // add "web" as a webapp, all classes that are i

我有一个相当小的JSF2应用程序,使用myfaces和primefaces。它在Eclipse中被设置为Tomcat7服务,运行良好,包括ajax和works

但是,我想对它进行单元测试,所以我添加了Tomcat7作为测试依赖项,并创建了相应的启动代码

// create tomcat
Tomcat tomcat = new Tomcat();
tomcat.setPort(HTTP_PORT);

// add "web" as a webapp, all classes that are in the current classpath (all in eclipse) are available
Context ctx = tomcat.addWebapp("/" + CONTEXT_PREFIX, new File("src/main/webapp").getAbsolutePath());

// start the server (but do not wait)
tomcat.start();
这也可以正确启动,但未加载托管bean。因此,即使页面看起来不错,也没有任何行为。问题似乎与这个Jetty博客类似,它讨论Jetty如何只在特定位置搜索托管bean

Eclipse中用于Tomcat服务器的web部署程序集将所有类文件放在web-INF/classes中,因此这可能就是问题所在


嵌入式Tomcat 7是否可以使用addWebapp(以便对web.xml进行单元测试),但将web-INF/classes重定向到正确的目录?

用于开发的服务器?版本完全相同,但这与单元测试无关。顺便说一句,我已经“修补”了设置;通过让Eclipse将类直接写入WEB-INF/classes。但是编译到源代码树中当然是个坏主意,所以我仍然需要能够让WEB-INF/classes指向Eclipse的构建目录。