测试时不同的持久性

时间:2013-11-26 14:52:17

标签: java java-ee jpa ant junit

我想在使用JUnit进行测试时使用不同的持久性单元。我创建了一个嵌入式EJBContainer并查找我的Enterprise Bean,但当然它使用了我的Enterprise Bean中PersistenceContext-annotation中描述的持久性单元。

有没有办法实现我的目标?当我发现类似的问题时,我应该提一下,我使用Ant。

1 个答案:

答案 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尚未完成。有一些相关的摘要herehere以及一篇文章here,所以有些人已经开始工作了。

我希望你能从那里工作。一旦你开始工作,请发布并接受你自己的解决方案。