这是我的结构
\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来运行我的测试。
答案 0 :(得分:2)
运行JUnit测试时,需要将src/resources
目录添加到Eclipse类路径中。您可以在项目级别执行此操作,或仅为测试运行器执行此操作。
答案 1 :(得分:1)
我需要解决的步骤如下:
将IBM插件jar添加到classpath
我是通过创建指向<WASINSTALL>\plugins\*.jar
将项目添加到您的Junit类路径。
我这样做是为了run
&gt; Debug Configurations
接下来我选择了junit测试套件配置
接下来,我选择了类路径选项卡
最后,我使用高级选项添加了JPA项目和用户lib。
这似乎解决了我的问题