我有一些需要自动化以重复测试的 ncurses 应用程序。我将“sleep”命令放在“send”命令之间。但是,我看到的是所有睡眠都是在屏幕加载之前开始执行的。期望连接发送(我在睡眠期间在屏幕底部看到)然后将它们一起发出。
我尝试使用“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