2010-06-22 86 views
3

我使用Selenium 1.x和Spring 3.0设置JUnit 4.7测试。没有SpringJUnit4ClassRunner或AbstractJUnit4SpringContextTests(在Selenium测试中)的Spring测试上下文设置

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

因为我不能延长Spring的AbstractJUnit4SpringContextTests,所以我试着用@RunWith(SpringJUnit4ClassRunner.class)装饰我的测试用例。这成功地设置了Spring,但导致Selenium执行中出现一些怪异现象:例如,测试缓慢执行并且浏览器窗口保持打开状态。我想它会覆盖Selenium的某些部分(只是猜测)...不幸的是,基类SeleneseTestCase只允许修改一组受限制的参数,例如排除设置执行速度(让我怀疑,如果基类是很好,毕竟...)。

我的理解是,为了让春天的所有花哨工作,我必须扩大AbstractJUnit4SpringContextTests或用@RunWith(SpringJUnit4ClassRunner.class)装饰课程。但前者我不行,后者带来问题。

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

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

编辑:使文本更具可读性。

回答

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; 

如果你做任何改进,请让我知道。

+0

该链接不再可用,你有另一个指向你的规则的指针?或者可能是您用来确定规则中需要的信息? – Lucas 2016-01-07 20:03:12

相关问题