如何在vimrc文件中对vim函数进行单元测试?

如何在vimrc文件中对vim函数进行单元测试?,vim,Vim,我在我的.vimrc文件中有一些函数,我想测试这个函数是否正在执行我希望它执行的操作。我想知道是否有一种快速的方法来对.vimrc中的函数进行单元测试 我的函数如下所示: fun! FindPythonMainFile(filename, ) let file = findfile(filename) if (file) echo "file exists" else echo "file doesn't exists"

我在我的.vimrc文件中有一些函数,我想测试这个函数是否正在执行我希望它执行的操作。我想知道是否有一种快速的方法来对.vimrc中的函数进行单元测试

我的函数如下所示:

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:感谢您的提及;我已经更新了我的参考资料。请参见如何使用它的示例。