2

我讀教程上的Arquillian網站 http://arquillian.org/guides/functional_testing_using_drone/的Arquillian和硒的混合容器/客戶端模式

下的「啓用客戶端模式」的段落,他們指出,有可能在容器和客戶端模式混合在相同的測試!只是放棄可測試的屬性。任何使用@RunAsClient註解的方法都將從客戶端執行,其餘部分將在容器內執行,爲您提供兩全其美的解決方案!

這是我的問題。 我想寫一個測試,用戶

@Drone 
DefaultSelenium browser and 

@EJB 
MyXXXRepository 

我有一個測試,將用戶添加到內存數據庫之前,我有一個Selenium測試它記錄在與該用戶的瀏覽器...

所以爲了讓Selenium工作,我需要告訴@Deployment可測試= false,這會導致我的@EJB失敗。 所以根據文檔我可以跳過testable = false,如果我告訴Selenium測試方法它應該在客戶端模式下運行。根據文件這應該工作。 但是!!! 這將拋出一個異常

Caused by: java.lang.NoClassDefFoundError: Lcom/thoughtworks/selenium/DefaultSelenium; 

,所以我需要能夠告訴

@Drone 
DefaultSelenium browser; 

要在客戶端模式,以及...

贊成嗎?

回答

0

我通過使用導入腳本來解決問題,該腳本將在測試之前導入用戶,這樣我就不需要實例化存儲庫並且它現在是一個乾淨的客戶端測試。

0

無人機旨在成爲客戶端。我個人從未試圖部署WebDriver/Drone測試並從服務器運行它。這聽起來有點瘋狂:)而且顯然自測試本身是混合classloader抱怨無人機相關的進口。

但我有一個解決方案,讓你從「灰盒子」的角度進行測試。在Arquillian宇宙中有一個相當新的擴展稱爲Warp,它允許你解決你的問題。這裏是the guide

希望有所幫助。

相關問題