代码之家  ›  专栏  ›  技术社区  ›  Hank Jesus M C

Hudson+JUnit+embedded GlassFish,如何提供域配置?

  •  0
  • Hank Jesus M C  · 技术社区  · 15 年前

    我正在使用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文件。对吗?

    两个问题:

    1. 我应该如何提供文件?哈得逊盒子里的玻璃鱼在哪里?

    Hudson使用相同的Ant构建脚本(由NetBeans创建)。

    this post 关于instanceRoot和EmbeddedFileSystemBuilder,但我对此了解不够。每个测试用例(Emb)都需要这个。对于每个被测bean,GF启动/停止)?这是我们的一部分吗EJBContainer.CreatejbContainer()? 再说一次,为什么在NetBeans上运行测试时不需要这样做呢?

    更新 按照Peter的建议,我可以确认:当在新签出的代码副本上运行ant时,使用与hudson配置相同的属性,测试就会被执行!

    1 回复  |  直到 9 年前
        1
  •  1
  •   Peter Tillemans    15 年前

    10-1这是一个类路径问题,因为IDE倾向于根据您是正常运行还是单元测试来交换路径。