这是我的结构
\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类路径。您可能可以在项目级别上执行此操作,也可以只为测试运行人员执行此操作。