0

这是我的结构

\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 始终为空,因此在下一行抛出 NPE。这让我相信我的 persistence.xml 出于某种原因没有被拾取。有人可以帮我解决文件需要放在哪里吗?有什么地方我可以确认文件本身没有问题(配置错误)?

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

4

2 回答 2

2

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

于 2012-12-26T20:33:29.860 回答
1

我需要解决这个问题的步骤如下:

  1. 将 IBM 插件 jar 添加到类路径

    我通过创建一个指向的用户库来做到这一点<WASINSTALL>\plugins\*.jar

  2. 将项目添加到您的 Junit 类路径。

    我这样做是为了run>Debug Configurations

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

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

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

这似乎解决了我的问题

于 2012-12-27T14:18:32.553 回答