私はVimのプラグインで作業していますが、起動時にユーザがファイルを編集するときに正しく動作することをテストしたいと思います。ユニットテスト目的で端末にキーを入力する方法
これを行うには、端末を起動してキーを入力したいと思います。 私はすべてpythonスクリプトからそれをやっていると思っています。これを行う方法はありますか?
擬似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