没有SpringJUnit4ClassRunner或AbstractJUnit4SpringContextTests的Spring测试上下文设置(在Selenium测试中)

时间:2010-06-22 15:59:03

标签: java spring selenium junit context.xml

我正在使用Selenium 1.x和Spring 3.0设置JUnit 4.7测试。

我想扩展Selenium的SeleneseTestCase以获得它提供的快捷方式和约定(更重要的是,Selenium IDE生成的代码似乎期望这样)。然而,我希望在执行过程中出现Spring上下文和其他善意。

因为我无法扩展Spring的AbstractJUnit4SpringContextTests,所以我尝试使用@RunWith(SpringJUnit4ClassRunner.class)来装饰我的测试用例。这成功地设置了Spring,但在Selenium执行中引起了一些奇怪的问题:例如,测试执行缓慢,浏览器窗口保持打开状态。我想它会覆盖Selenium的某些部分(只是一个猜测)......不幸的是,基础SeleneseTestCase类只允许更改一组有限的参数,例如设置执行速度,(让我想知道,如果基础类毕竟很好......)。

据我了解,为了使Spring的所有花里胡哨,我必须扩展AbstractJUnit4SpringContextTests或用@RunWith(SpringJUnit4ClassRunner.class)装饰班级。然而,前者我不能,后者带来问题。

只有@ContextConfiguration会加载上下文,但至少依赖注入不起作用。那是我停下来的地方。

如何使用Selenium(或具有相同案例的任何其他库)整齐地初始化Spring?

修改:使文字更具可读性。

1 个答案:

答案 0 :(得分:1)

我对类似的问题感到恼火,足以写a MethodRule implementation that will load a Spring context and autowire it's host test。也许这是你正在寻找的开始。

它允许你做这样的事情:

@Rule
public TemporarySpringContext context = new TemporarySpringContext("context.xml");

@Autowired
MyService myServiceBean;

如果您有任何改进,请告诉我。