огуречный javascript с поддержкой функций внутри бродяги - PullRequest
2 голосов
/ 31 января 2012

Я большой поклонник огурца и бродяги. Я использую cucumber для управления разработкой в ​​стиле BDD, и однажды сконфигурировал и настроил свою среду разработки в vagrant vm, чтобы ее можно было легко распространять среди других разработчиков.

Я столкнулся с проблемой, когда дело доходит до тестирования JS на бродячем VM. я использую капибару вместе с огурцом и пробовал и селен, и капибара-вебкит в качестве драйверов js.

Селен хотел, чтобы я установил Firefox. поэтому я упаковал vagrantbox полностью ожидая, что он не будет работать, и установил firefox на виртуальную машину ... после этого он пожаловался на невозможность установить стабильное соединение с firefox. точное сообщение об ошибке: «невозможно установить стабильное соединение Firefox за 60 секунд»

webkit пожаловался на 'webkit_server: невозможно подключиться к X-серверу' .. Я установил xserver-org и до сих пор не играю в кости.

очень предпочел бы, чтобы мне не пришлось устанавливать всю свою среду на своем хосте, чтобы проводить тестирование, так как это отчасти побеждало бы наличие распространяемого vagrant vm, в котором есть все, что нужно dev для работы в приложении. .

есть идеи? Я столкнулся с подобной проблемой с уведомлениями от охранника, но, похоже, это не такая большая проблема, как эта проблема.

Ответы [ 3 ]

1 голос
/ 23 августа 2012

Вы можете попробовать запустить Firefox без головы.

http://www.alittlemadness.com/2008/03/05/running-selenium-headless/

Таким образом, вы можете запускать тесты, даже не видя их.

1 голос
/ 27 февраля 2012

Я думаю, что для установки всех драйверов требуется X. Так что на сервере Linux у меня нет, как это сделать.

Другой способ - использовать Firefox с хоста через удаленный селен. Это означает, что JavaScript будет работать на удаленном Firefox на любой машине.

Удаленный Selenium WebDriver не отвечает на тесты на огурец

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

Это работает.

Запуск сервера селена на хосте

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 голосов
/ 08 апреля 2015

Я столкнулся с подобной проблемой. Попробуйте ssh'ing в вашу виртуальную машину и выполните xhost + из командной строки. Это отключает контроль доступа и позволяет клиентам подключаться с любого хоста для доступа к вашему дисплею.

Кроме того, вам также может потребоваться export DISPLAY=:0, потому что веб-драйвер по умолчанию будет использовать этот экран при запуске Firefox.

...