Что касается первого вопроса о том, как зарегистрировать шаги выполнения, это настолько близко, насколько я понял, поскольку я пока не знаю, как регистрировать STDIN.Так что этот logger так же хорош, как ваши ставит комментарии.
require 'watir'
begin
time_now = Time.now.strftime("%y.%d.%m.%H:%M.%S")
log_file_name = "log_for_script_#{time_now}.log"
File.write(log_file_name, "")
$stderr.reopen log_file_name
$stdout.reopen log_file_name
b = Watir::Browser.new
puts "Browser is opened #{b.exists?}"
b.goto "www.google.com"
puts "Navigate to google, title #{b.title}"
b.text_field(:id => "lst-ib").set "logging stuff hopefully"
puts "setting search parameters "
puts "and now error"
asdasd
rescue => e
puts "error happened: #{e.backtrace.inspect}, #{e.class}, #{e.message}"
File.rename(log_file_name, 'FAILED_' + log_file_name)
ensure
b.close unless b.nil?
end
Я думаю, вы могли бы использовать журналы chromedriver / geckodriver, если вам нужны более подробные журналы дляваши сценарии, так что дайте нам знать, если это так.
Ваш второй вопрос может быть задан разными способами в зависимости от того, как вы выполняете / организуете свои сценарии watir.Если вы храните свои сценарии в файлах / каталогах, вы можете создать другой сценарий ruby, который выполняет каждый файл в каталоге, и, когда это будет сделано, подсчитать журналы с ошибками, поскольку они переименовываются в случае ошибки.
File.rename(log_file_name, 'FAILED_' + log_file_name)
Как и предполагалось, вы можете использовать одну из сред тестирования, которая охватывает ведение журнала для вас, но это не всегда вызов сотрудников.