Как привязать ruby тесты к jenkins ci?
С какими параметрами создавать job?
Кто какие средства CI использует для автоматизации тестов на ruby?
Как привязать ruby тесты к jenkins ci?
С какими параметрами создавать job?
Кто какие средства CI использует для автоматизации тестов на ruby?
Запускать можно как угодно. Всеми доступными средстами jenkins
да, d3unka прав, если вы просто можете запустить тесты с коммандной строки или в терминале, то поключение запуска тестов - очень простая процедура.
касательно того, что передавать, обычно это касается окружения, сервер, порт, user, файл конфигурации, base url, и т.д.
вот еще полезная ссылочка http://www.build-doctor.com/2009/04/08/every-continuous-integration-server-that-supports-ruby-git/
Спасибо. Но всё равно не получается например у меня тесты лежат в /test/ я в терминале запускаю ruby /test/1.rb всё работает создаю .sh с тем же парамтром тоже работает прописываю что написанно в скрипте в jenkins в job в панели сборка выбираю " выполнит команду shell" и вбиваю команду "ruby /test/1.rb" запускаю соборку она сразу падает и не запускает ничего... Что я не так делаю?
Пробовал под виндовс тоже самое только выбирал не shell а выполнить команду windows.
Посмотрите логи job-ы, которые дает Jenkins и добавьте сюда. Скорее проблема в путях. Локально они одни, а через jenkins другие
Started by user anonymous
[workspace] $ cmd /c call C:\WINDOWS\TEMP\hudson4149779259610428365.bat
C:\Program Files\Jenkins\jobs\1\workspace>ruby C:\test\1vv.rb
C:/Ruby193/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': iconv will be deprecated in the future, use String#encode instead.
C:/Ruby193/lib/ruby/gems/1.9.1/gems/ffi-1.0.9-x86-mingw32/lib/ffi/platform.rb:27: Use RbConfig instead of obsolete and deprecated Config.
[remote server] file:///C:/WINDOWS/Temp/webdriver-profile20111107-1508-1wv64u7/extensions/fxdriver@googlecode.com/components/driver-component.js -> file:///C:/WINDOWS/Temp/webdriver-profile20111107-1508-1wv64u7/extensions/fxdriver@googlecode.com/components/firefoxDriver.js:401:in `unknown': Unable to locate element: {"method":"class name","selector":"auth"} (Selenium::WebDriver::Error::NoSuchElementError)
from [remote server] file:///C:/WINDOWS/Temp/webdriver-profile20111107-1508-1wv64u7/extensions/fxdriver@googlecode.com/components/driver-component.js -> file:///C:/WINDOWS/Temp/webdriver-profile20111107-1508-1wv64u7/extensions/fxdriver@googlecode.com/components/firefoxDriver.js:424:in `unknown'
from [remote server] file:///C:/WINDOWS/Temp/webdriver-profile20111107-1508-1wv64u7/extensions/fxdriver@googlecode.com/components/nsCommandProcessor.js:306:in `unknown'
from [remote server] file:///C:/WINDOWS/Temp/webdriver-profile20111107-1508-1wv64u7/extensions/fxdriver@googlecode.com/components/nsCommandProcessor.js:320:in `unknown'
from [remote server] file:///C:/WINDOWS/Temp/webdriver-profile20111107-1508-1wv64u7/extensions/fxdriver@googlecode.com/components/nsCommandProcessor.js:197:in `unknown'
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.10.0/lib/selenium/webdriver/remote/response.rb:50:in `assert_ok'
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.10.0/lib/selenium/webdriver/remote/response.rb:15:in `initialize'
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.10.0/lib/selenium/webdriver/remote/http/common.rb:54:in `new'
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.10.0/lib/selenium/webdriver/remote/http/common.rb:54:in `create_response'
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.10.0/lib/selenium/webdriver/remote/http/default.rb:64:in `request'
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.10.0/lib/selenium/webdriver/remote/http/common.rb:35:in `call'
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.10.0/lib/selenium/webdriver/remote/bridge.rb:426:in `raw_execute'
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.10.0/lib/selenium/webdriver/remote/bridge.rb:404:in `execute'
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.10.0/lib/selenium/webdriver/remote/bridge.rb:372:in `find_element_by'
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.10.0/lib/selenium/webdriver/common/search_context.rb:41:in `find_element'
from C:/test/1vv.rb:7:in `<main>'
C:\Program Files\Jenkins\jobs\1\workspace>exit 1
Build step 'Execute Windows batch command' marked build as failure
Finished: FAILURE
теперь стал думать по 2 минуты прежде чем упасть...
Вот вам и ответ в логах. ВебДрайвер не может найти елемент на странице.
unknown': Unable to locate element: {"method":"class name","selector":"auth"} (Selenium::WebDriver::Error::NoSuchElementError)
Ошибку ищите вот здесь
search_context.rb:41:in `find_element'
41 строка класса search_context
Спасибо всё заработало там просто в конце были пустые строчки в тесте их удалил и заработал... А в линуксе под root пользователем, в логах пишет нет прав на открытие директории где лежат тесты с ubuntu запускал. Думаю другой дистрибутив поставить просто...
Не совсем понял проблему. Не видно результатов выполнения на самом Jenkins?
Вот что под линуксом выдаёт Jenkins в логах.
Started by user anonymous
[workspace] $ /bin/sh /tmp/hudson6998138199984298712.sh
ruby: Permission denied -- /test/1vv.rb (LoadError)
Build step 'Выполнить команду shell' marked build as failure
Finished: FAILURE
Проблема в правах юзера anonymous
Нужно запустить tomcat(сервер на котором запущен jenkins) от юзера с правами на редактирование в папках, в которых происходит выполнение тестов
можно ли сделать так что бы jenkins запускал тесты не в фоновом режиме?
а зачем запускать не в фоновом режиме? тебе видеть что происходит?
Можно, если запустить jenkins не как сервис, а как приложение на tomcat.
Почему то в фоновом режиме не всё отрабатывает. Просто запускаю тест всё нормально всё отрабатывает а в jenkins падает на форме с сообщением... Не могу понять почему...
А можно поподробнее как это сделать?
лучше подключить запись видео, снятие скриншотов и HTML сорсов страницы, когда она фейлиться.
это конечно затратно по ресурсам, потому можно подключить опцию только для некоторых тестов которые сбоят
ссылки по теме
http://www.theautomatedtester.co.uk/blog/2010/castro-selenium-video.html
http://coreygoldberg.blogspot.com/2011/06/python-selenium-webdriver-capture.html
http://stackoverflow.com/questions/3422262/take-a-screenshot-with-selenium-webdriver
http://stackoverflow.com/questions/7263824/get-source-of-webelement-in-selenium-webdriver-python
Под линуксом заработало спасибо. Под виндовс всё равно в фоновом режиме запускает.