我正在使用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?
修改:使文字更具可读性。
答案 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;
如果您有任何改进,请告诉我。