2010-02-08 51 views
0

我有一些ncurses应用程序,我需要自动化重复测试。 我在“发送”命令之间放置了“睡眠”命令。然而,我看到的是所有的睡眠都在屏幕加载之前的开始执行。期望连接发送(我在睡眠期间看到屏幕底部)然后将它们一起发送。ncurses - 期望:睡眠在错误的时间执行

我试着用“send -s”或“send -h”发送所有密钥。这有点帮助。我用“-b”取代了第1行的“-f” - 这又是一个很小的差别。

为什么没有“休眠”在正确的时间暂停。顺便说一句,我的程序有一个getc()循环,所以我不能使用“expect”命令。我也尝试过。

#!/usr/bin/expect -f 
spawn ruby testsplit.rb 
#expect 
set send_human {3 3 5 5 7} 
set send_slow {10 1} 
exp_send -s -- "--" 
exec sleep 3 
send -s "+" 
send -s "=" 
sleep 1 
send -h -- "-" 
send -h -- "-" 
sleep 1 
send -h -- "v" 
interact 

回答

0

我猜你需要等待ruby程序启动后再继续发送和睡眠。 ruby程序在启动时是否有任何字符串输出(例如“ready”)?如果是这样,在您曾料想注释掉点我会尝试expect "ready",这样预计会等到红宝石程序继续之前开始。

+0

没有。如果有一个字符串,我会用它。有一个字段的屏幕,但没有字符串输出。 – rahul 2010-02-24 17:25:54