как работает поток обработки в haml? - PullRequest
0 голосов
/ 15 октября 2010

У меня есть файл run.haml, в котором я запускаю тестовый костюм. Все работает просто отлично, но я хочу отобразить текст «Starting test suite: # {params ['run']}» сразу после того, как пользователь щелкнет ссылку, которая ведет его к этому хамлу.

по нажатой ссылке сообщается хамлу, какой иск необходимо выполнить

%a(href="run?run=#{file}")

Прямо сейчас все отображается после завершения пробного запуска. Страница run.haml загружается до завершения работы скрипта.

  • как работает поток обработки haml ?
  • можно ли начать обработку задания после начала рендеринга страницы?
  • Могу ли я отобразить какой-нибудь текст в браузере , а затем позволить вызвать тестовый костюм?

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


    !!!  
    %html  
      %head  
        %title Running  
      %body
        = "Starting test suite: #{params['run']}"
        - output = %x[cd C:\\Program Files\\TestPro\\TestPro Automation Framework410 && ant -lib lib -f "C:\\Program Files\\TestPro\\TestPro Automation Framework410\\Output Files\\builds\\#{params['run']}.xml"]
        -#The result is
        %br
        = output.split("\n")[-2,2].join("<BR>")
        = "<br/>"*2
        %a(href="/")back to suits list

1 Ответ

1 голос
/ 15 октября 2010

Что ж, послушайте, моя мысль здесь заключается в том, что он не рендерит все (по какой-либо причине) до тех пор, пока не будет возвращен вызов этой функции.

Если это так, вы захотите обработать результат этой функцииотдельно от загрузки страницы комплекта тестов - так что вам нужно будет вызывать комплект тестов либо с

Этот выбор зависит от времени, которое функция (как правило) занимает для запуска - поэтому, в зависимости от сложности, может быть хорошим кандидатом на что-то вроде BackgrounDRb , run_later или delayed_job , или даже пользовательский демон.

Наконец, вы можете найти этот пример использования Sinatraс delayed_job полезно.

...