2010-10-14 43 views
0

我有一個運行測試套裝的run.haml文件。一切正常,但我想在用戶點擊導致他到此haml的鏈接後立即顯示文本「開始測試套件:#{params ['run']}」。haml工作流程如何處理?

鏈接點擊告訴HAML需要執行

%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

好吧,看 - 這裏我想到的是,它不是渲染(無論何種原因)的一切,直到該函數調用返回。

如果是這樣的話,你會想從加載測試工具頁單獨處理該函數的結果 - 所以,你要調用測試套件或者與

  • Ajax call或者,
  • 一個單獨的工作線程

這一選擇取決於時間的函數(一般)需要運行長度 - 因此,根據不同的複雜性,它可能是像一個很好的候選人BackgrounDRb,run_laterdelayed_job,甚至是自定義守護進程。

最後,您可能會發現this example of using Sinatra with delayed_job有幫助。

+0

@Joe:嗯,其實我現在正在寫一種守護進程。如果至少顯示頁面標題,我很高興。但是,正如你所說的那樣,在該函數調用完成之前它不會呈現任何內容。 – Radek 2010-10-14 23:54:31

+0

也許我們可以澄清這個問題 - 問題可能不是Haml。畢竟,.haml頁面不應該像處理vanilla .erb頁面那樣處理這類事情。同樣的事情會發生。所以現在的問題是如何重新設計頁面來調用測試套件,只要頁面加載 - 或者我錯過了什麼? – 2010-10-14 23:58:22

+0

我可以從haml運行單獨的工作線程嗎?你能給我任何有關在ruby中使用獨立工作線程的網址嗎? – Radek 2010-10-15 00:01:18