2012-01-30 67 views
2

我是黃瓜和流浪漢的忠實粉絲。我正在使用黃瓜驅動BDD風格的開發,並且已經在流浪虛擬機中配置並設置了我的開發環境,因此可以輕鬆地將其分發給其他開發人員。黃瓜啓用流動性功能內的功能

我打了一個障礙,當談到在流浪vm上測試js。我正在黃瓜旁邊使用水豚,並且已經嘗試過硒和水豚 - webkit作爲js司機。

硒想讓我安裝firefox。所以我打包了vagrantbox完全期待它不工作,並在vm上安裝firefox ..之後,它抱怨無法獲得與Firefox的穩定連接。確切的錯誤信息:'在60秒內無法獲得穩定的Firefox連接'

webkit抱怨'webkit_server:無法連接到X服務器'..我安裝了xserver-org並且仍然沒有骰子。

如果我不需要在我的主機上安裝我的整個環境以便進行測試,那樣會失敗的目的就是擁有一個可配置的vagrant虛擬機,它具有開發人員需要的所有工作應用程序。

有什麼想法?我遇到了來自警衛通知的類似問題,但這似乎不像這個問題那麼重要。

回答

1

我認爲所有驅動程序都需要安裝X. 因此,在Linux服務器上我沒有這樣做。

從主機通過selenium remote使用Firefox的其他方式。 這意味着JavaScript將在任何機器上的遠程Firefox上運行。

Remote Selenium WebDriver not responding to Cucumber tests

http://code.google.com/p/selenium/wiki/RubyBindings

的IT工作。主機

java -jar selenium-server-standalone.jar 

變化spec_helper.rb

require "selenium-webdriver" 

profile = Selenium::WebDriver::Firefox::Profile.new 
profile["network.http.use-cache"] = false 

Capybara.register_driver :firefox_host do |app| 
Capybara::Selenium::Driver.new(app, 
    :browser => :remote, 
    :url => 'http://10.0.2.2:4444/wd/hub', 
    :desired_capabilities => Selenium::WebDriver::Remote::Capabilities.firefox(:firefox_profile => profile) 
) 
end 

Capybara.server_port = 9300 
Capybara.app_host = 'http://localhost:9300' 
Capybara.javascript_driver = :firefox_host 

變化Vagrantfile

config.vm.forward_port 9300, 9300 
0

我遇到了類似的問題。嘗試ssh'ing到您的虛擬機,並從命令行執行xhost +。這將禁用訪問控制,並允許客戶端從任何主機連接以訪問您的顯示器。

此外,您可能需要export DISPLAY=:0爲好,因爲webdriver的將默認爲當它啓動Firefox中使用此顯示。