Watir-Webdriver: выводит заявление, не выводимое на консоль hudson в режиме реального времени - PullRequest
2 голосов
/ 08 ноября 2011

Я запускаю несколько тестов с использованием watir-webdriver [ruby], и в этих тестах я добавил несколько операторов put, которые будут выводиться на консоль. При запуске в терминале / командной строке сообщения сразу выводятся на консоль.

Но когда я запускаю те же тесты от Хадсона, печать не происходит в реальном времени. Вместо этого он будет ждать завершения задания и в конце сбросит весь отпечаток за один раз.

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

Есть ли какие-то решения для этого?

Спасибо Sudhi

Обновление:

Адам, Теперь это работает для меня. Мой фрагмент кода выглядит следующим образом.

stdout.sync = true 
class TC_MyTest < Test::Unit::TestCase 
$stdout.sync = true 
  def test_sample 
  $i=0 
  @@log.debug "Running the scenario = "+@@SCENARIO 
  puts "Running the scenario = "+@@SCENARIO 
     while $i<@@LOOPCOUNT 
       @@log.debug "Running the loop # "+$i.to_s 
       puts "Running the loop # "+$i.to_s 
       # Clean up the system 
       killOldProcesses() 
     end 
  end 
end

1 Ответ

1 голос
/ 08 ноября 2011

Этот оператор предотвращает буферизацию текста, чтобы он отображался немедленно - поместите его в начало вашего скрипта (для Cucumber я поместил его в начало файла в моей директории поддержки):

$stdout.sync = true

Используете ли вы какие-либо другие фреймворки / гемы? У меня была проблема с тем, что Дженкинс не отображал операторы put в скриптах Cucumber в реальном времени. Решением было перенести эти операторы put на мои страницы объекта страницы , а не на файлы шагов (Feature -> Steps -> Pages).

Используя оба этих соглашения, я получаю вывод Jenkins в режиме реального времени по желанию.

...