2010-06-22 84 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

相關問題