2010-02-08 49 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