Junit没有拿起persistence.xml EJB3

时间:2012-12-26 19:59:30

标签: java junit ejb

这是我的结构

\jpa
  \src
    \resources
      \META-INF
        \persistence.xml
  \oldtests
    \com
      TestClass.java
\war
  \oldtests
    \com
      TestSuite.java

TestClass扩展了BaseTest,我通过测试套件运行它。

在测试中,我正在抓住我的坚持信息......

public class BaseTest extends TestCase {
  protected EntityManagerFactory emf;
  protected EntityManager em;
  @Override
  protected void setUp() throws Exception {
    super.setUp();
    emf = Persistence.createEntityManagerFactory("test");
    em = emf.createEntityManager();
    ...
  }
  ...
}

但是,emf始终为null,因此在下一行上抛出NPE。这让我相信我的persistence.xml由于某种原因没有被提升。有人可以帮我解决文件需要定位的位置吗?有没有一个地方我可以确认它不是文件本身的问题(配置错误)?

我可以根据要求添加持久性单位,但我怀疑这是问题,因为我们在其他地方使用它。我也使用eclipse来运行我的测试。

2 个答案:

答案 0 :(得分:2)

运行JUnit测试时,需要将src/resources目录添加到Eclipse类路径中。您可以在项目级别执行此操作,或仅为测试运行器执行此操作。

答案 1 :(得分:1)

我需要解决的步骤如下:

  1. 将IBM插件jar添加到classpath

    我是通过创建指向<WASINSTALL>\plugins\*.jar

  2. 的用户库来完成此操作的
  3. 将项目添加到您的Junit类路径。

    我这样做是为了run&gt; Debug Configurations

    • 接下来我选择了junit测试套件配置

    • 接下来,我选择了类路径选项卡

    • 最后,我使用高级选项添加了JPA项目和用户lib。

  4. 这似乎解决了我的问题