我正在为Vim开发一个插件,我想在启动时测试它的行为,当用户编辑文件e.t.c.如何将密钥输入到终端进行单元测试
要做到这一点,我想要启动一个终端,并向它提供键。 我正在考虑从python脚本中完成所有操作。有没有办法做到这一点?
在伪蟒蛇可能是这个样子:
#start a terminal. Here konsole
konsole = os.system('konsole --width=200 --height=150')
#start vim in that terminal
konsole.feed_keys("vim\n")
#run the vim function to be tested
konsole.feed_keys(":let my_list = MyVimFunction()\n")
#save the return value to the file system
konsole.feed_keys(":writefile(my_list, '/tmp/result')\n")
#load result into python
with open('/tmp/result', 'r') as myfile:
data = myfile.read()
#validate the result
assertEqual('expect result', data)
非常有用的答案。我已经接受了这个答案,因为这更接近我决定要做的事情。 我把我所有的测试代码放在一个.vimrc文件中,我将它复制到一个tempdir中。 然后我开始像这样的vim: 'cd $ tmpdir && HOME =。 vim -X' 然后,我开始在vim8-timer上进行实际测试,因此在插件加载完成后。 – XPlatformer
谢谢,快乐测试;从一开始就系统地做这件事具有不可否认的好处!你的方法听起来不错;如果你不想依赖Vim版本8,你也可以使用':autocmd VimEnter * call StartTests()'来触发它们。 –
与autocmd的绝妙主意,但剧本无论如何需要vim8 :-) – XPlatformer