繰り返しテストするために自動化する必要がある ncurses アプリがいくつかあります。「send」コマンドの間に「sleep」コマンドを配置しています。ただし、画面が読み込まれる前に、すべてのスリープが最初に実行されることがわかります。送信を連結し(スリープ中の画面の下部にあることがわかります)、それらを一緒に発行することを期待しています。
「send -s」または「send -h」ですべてのキーを送信しようとしました。それはわずかに役立ちます。1行目の「-f」を「-b」に置き換えました-これも小さな違いです。
「睡眠」が適切なタイミングで一時停止しないのはなぜですか。ちなみに、私のプログラムには 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