在我的春天+ Maven的应用程序,我已经创建了,我现在想对多个数据源运行数据访问层的一些测试。我有类似:行家:运行相同的测试进行不同的配置
@ContextConfiguration(locations={"file:src/test/resources/testAppConfigMysql.xml"})
public class TestFooDao extends AbstractTransactionalJUnit38SpringContextTests {
public void testFoo(){
...
}
}
它目前的配置位置的硬编码的,所以它只能针对一个数据源使用。 调用两次测试并传递两个不同配置(比如testAppConfigMysql.xml和testMyConfigHsqlDb.xml)的最佳方式是什么?
我见过的建议通过系统属性来做到这一点。我如何告诉maven使用系统属性的不同值来调用两次测试?
但是我有很多的daos美孚,酒吧,...(其中约15),因此,15个测试类TestFooDao,TestBarDao,...在你的解决方案,我不得不加倍类的数量,这是我做的不想要(我也不想把所有的测试合并成一个巨大的类) – jfu 2012-04-27 10:02:51
是的,我知道。但我真的没有看到更好的解决方案。正如我所说的,我完全意识到这个解决方案并不完美,并且会吸引一点点。我刚才想到的另一件事是尝试使用某种JUnit的Theories与Spring配合的命令支持。这意味着你可以放弃Spring上下文的基于注解的配置,并尝试通过调用某种方法来设置它。不过,我不知道Spring API足够好,可以在这里给你一些参考或示例。我不确定它是否真的可行并且工作正常,但我只是想说一下。 – 2012-04-30 09:39:23
另一个想法:可能延长一点点春天测试支持类(如'SpringJUnit4ClassRunner'或周围的一些助手)会解决的情况下,如果没有真正出的现成的解决方案。在我看来,您可以覆盖处理'@ ContextConfiguration'注释的代码片段,并尝试实现自己的逻辑,可能使用接受参数指向多个上下文的自定义注释。 – 2012-04-30 13:10:18