Java Junit没有获取persistence.xml EJB3

Java Junit没有获取persistence.xml EJB3,java,junit,ejb,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 {

这是我的结构

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

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

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

解决此问题所需的步骤如下:

  • 将IBM插件JAR添加到类路径

    为此,我创建了一个指向
    \plugins\*.jar

  • 将项目添加到Junit类路径

    我通过转到
    运行
    调试配置

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

    • 接下来,我选择了classpath选项卡

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


  • 这似乎解决了我的问题

    解决这一问题所需的步骤如下:

  • 将IBM插件JAR添加到类路径

    为此,我创建了一个指向
    \plugins\*.jar

  • 将项目添加到Junit类路径

    我通过转到
    运行
    调试配置

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

    • 接下来,我选择了classpath选项卡

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


  • 这似乎解决了我的问题

    我尝试将META-INF和资源文件(分别)添加到类库中,但是,这没有任何帮助。我仍然看到同样的情况NPE@Jackie-如果您找到了完整的解决方案,请将其作为单独的答案发布,而不是修改其他答案之一。如果有帮助的话,你仍然可以接受和/或投票支持Emil的回复。我尝试将META-INF和资源文件(分别)添加到类库中,但是,这没有任何帮助。我仍然看到同样的情况NPE@Jackie-如果您找到了完整的解决方案,请将其作为单独的答案发布,而不是修改其他答案之一。如果有帮助,您仍然可以接受和/或投票支持Emil的回复。感谢发布答案。感谢发布答案。