如何在vimrc文件中对vim函数进行单元测试?
我在我的.vimrc文件中有一些函数,我想测试这个函数是否正在执行我希望它执行的操作。我想知道是否有一种快速的方法来对.vimrc中的函数进行单元测试 我的函数如下所示:如何在vimrc文件中对vim函数进行单元测试?,vim,Vim,我在我的.vimrc文件中有一些函数,我想测试这个函数是否正在执行我希望它执行的操作。我想知道是否有一种快速的方法来对.vimrc中的函数进行单元测试 我的函数如下所示: fun! FindPythonMainFile(filename, ) let file = findfile(filename) if (file) echo "file exists" else echo "file doesn't exists"
fun! FindPythonMainFile(filename, )
let file = findfile(filename)
if (file)
echo "file exists"
else
echo "file doesn't exists"
endif
endf
致以最崇高的敬意。我要做的第一件事是将这些函数从
.vimrc
移到单独的位置。您将获得额外的好处,如独特的名称空间、更少的混乱、更快的Vim启动,并且这些功能(仍然)可以从任何地方(映射、命令、单元测试)调用
最简单的方法是,启动您自己的测试,只需调用函数并进行断言。您给定的函数将很难测试,因为它的副作用是:echo
,您必须执行繁琐的:redir
或execute()
来捕获它。最好将其拆分为实际检查(返回布尔值)和带有:echo的单独报告函数
要通知您自己测试结果,您只需:echo
任何错误/结果,或使用:cquit
中止即可。有关如何使用Vim的内置assert_……()
函数进行断言和最小化报告的信息,请参阅
我不认为很多人会测试他们自己的个人定制(但我为你的尝试鼓掌!)对于插件(你可能打算发布给其他人),这是另一回事。存在多种方法和框架,因此,如果您打算朝着这个方向发展,那么评估这些方法和框架可能是值得的。My就是这样一个框架(我用它来测试几十个插件);插件页面有指向备选方案的链接。UT已移动到github:@Luchermite:感谢您的提及;我已经更新了我的参考资料。请参见如何使用它的示例。