这是我的结构

\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来运行测试。

最佳答案

运行JUnit测试时,需要将src/resources目录添加到Eclipse类路径。您可能可以在项目级别上执行此操作,也可以只为测试运行人员执行此操作。

09-25 22:13
查看更多