哈德逊&x2B;JUnit+;嵌入式GlassFish,如何提供域配置?
我正在使用NetBeans和GlassFish 3.0.1创建一个EJB3应用程序。我已经编写了一些单元测试,它们通过JUnit运行,并利用嵌入式GlassFish。每当我在我的开发机器上运行这些测试时(从NetBeans内部),一切都很好 现在我想让哈德逊做这些测试。此时,由于资源(在本例中是JPA持久性单元的数据源)上的查找失败而失败: 在四处搜索并试图了解这一点之后,我相信这与未配置资源的嵌入式GlassFish有关。换句话说,它缺少一个domain.xml文件。对吧? 两个问题:哈德逊&x2B;JUnit+;嵌入式GlassFish,如何提供域配置?,junit,hudson,glassfish-embedded,Junit,Hudson,Glassfish Embedded,我正在使用NetBeans和GlassFish 3.0.1创建一个EJB3应用程序。我已经编写了一些单元测试,它们通过JUnit运行,并利用嵌入式GlassFish。每当我在我的开发机器上运行这些测试时(从NetBeans内部),一切都很好 现在我想让哈德逊做这些测试。此时,由于资源(在本例中是JPA持久性单元的数据源)上的查找失败而失败: 在四处搜索并试图了解这一点之后,我相信这与未配置资源的嵌入式GlassFish有关。换句话说,它缺少一个domain.xml文件。对吧? 两个问题: 为什么
按照Peter的建议,我可以确认:当在新签出的代码副本上运行ant时,使用与hudson配置相同的属性,测试将被执行 10-1这是一个类路径问题,因为IDE倾向于根据您是正常运行还是单元测试来交换路径 尝试从SCM中新签出的版本在命令行上运行测试。很可能你也会犯同样的错误。在本地计算机上调试要比在远程计算机上调试容易得多
当它可靠地建立在命令行上(在一个单独的目录中)时,是时候转到hudson了。谢谢你的建议!当我运行“ant测试”时,测试实际上可以工作并得到执行。还有其他想法吗?@Hank:你是从命令行在Hudson服务器上运行的吗?如果是,则可能是权限问题。用和哈德逊相同的证书来运行你的测试?@2nd Peter:你这个老头子!谢谢,伙计,就这样$hudson用户无法读取{GLASSFISH_HOME}/GLASSFISH/domains/domain1/config。现在一切都好了!
[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