gpt4 book ai didi

python - 我如何将 key 输入终端以进行单元测试

转载 作者:行者123 更新时间:2023-11-28 21:44:28 26 4
gpt4 key购买 nike

我正在为 Vim 开发一个插件,我想测试它在启动时是否正确运行,当用户编辑文件等时。

为此,我想启动一个终端,并向其中输入 key 。我正在考虑通过 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)

最佳答案

我认为您应该使用单元测试在 Vim 中验证插件的核心功能。有各种各样的 Vim 插件,但大多数都提供一些额外的映射或命令,供用户调用,它们通常会在缓冲区、输出或打开的窗口中留下一些副作用。这可以从 Vim 内部验证。有多种方法,我的方法是 runVimTests test framework ;插件页面有几个替代方案的链接。

有了如此涵盖的核心功能,就没有什么可以“交互式”测试了。 (我的意思是诸如忘记调试输出、执行时间过长、显示困惑之类的东西。)由于您通常是 Vim 和您自己的插件的重度用户,所以这基本上涵盖了它。


当然,如果您的插件将自己紧密地嵌入到 Vim 中(就像“XXX 的 IDE”;虽然这通常不受欢迎),您可以考虑一些外部测试驱动程序。也许其他人会提供一些通用的、终端驱动的测试框架的指针。我几乎可以肯定这样的存在。

关于python - 我如何将 key 输入终端以进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40656627/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com