我想在使用JUnit进行测试时使用不同的持久性单元。我创建了一个嵌入式EJBContainer并查找我的Enterprise Bean,但当然它使用了我的Enterprise Bean中PersistenceContext-annotation中描述的持久性单元。
有没有办法实现我的目标?当我发现类似的问题时,我应该提一下,我使用Ant。
答案 0 :(得分:0)
您可以使用Arquillian。打包测试存档时,您可以将任何您喜欢的文件包含为测试persistence.xml
:
@RunWith(Arquillian.class)
public class MyTest {
@Deployment
public static Archive<?> createTestArchive() {
return ShrinkWrap
.create(WebArchive.class, "test.war")
...
.addAsResource("MY_TEST_RESOURCES/persistence.xml",
"META-INF/persistence.xml")
...
}
编辑:我只是为Arquillian假设了合理的Ant集成,但我错了。虽然Arquillian的制造商宣布它与maven无关,并且据称是
...在项目中使用时,效果也一样好 - 如果不是更好的话 蚂蚁或Gradle
如上所述here。没有为ant提供的工作示例。相关的documentation page尚未完成。有一些相关的摘要here和here以及一篇文章here,所以有些人已经开始工作了。
我希望你能从那里工作。一旦你开始工作,请发布并接受你自己的解决方案。