我正在使用NetBeans和glassfish3.0.1创建EJB3应用程序。我已经编写了一些单元测试,这些测试通过JUnit运行,并使用了嵌入的GlassFish。每当我在我的开发机器上运行这些测试时(在NetBeans中),一切都很好。
[junit] SEVERE: Exception while invoking class org.glassfish.persistence.jpa.JPADeployer prepare method
[junit] java.lang.RuntimeException: javax.naming.NamingException: Lookup failed for 'mvs_devel' in SerialContext
在四处搜索并试图了解这一点之后,我相信这与嵌入的GlassFish没有配置资源有关。换句话说,它缺少一个域.xml文件。对吗?
两个问题:
-
-
我应该如何提供文件?哈得逊盒子里的玻璃鱼在哪里?
Hudson使用相同的Ant构建脚本(由NetBeans创建)。
this post
关于instanceRoot和EmbeddedFileSystemBuilder,但我对此了解不够。每个测试用例(Emb)都需要这个。对于每个被测bean,GF启动/停止)?这是我们的一部分吗EJBContainer.CreatejbContainer()? 再说一次,为什么在NetBeans上运行测试时不需要这样做呢?
更新
按照Peter的建议,我可以确认:当在新签出的代码副本上运行ant时,使用与hudson配置相同的属性,测试就会被执行!