2010-10-14 111 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