使用Vader测试缓冲区列表

时间:2019-02-24 14:26:49

标签: vim automated-tests

我正在编写一个vim插件,但我注意到一个错误,该错误无法自动清除临时缓冲区。我正在使用Vader测试框架插件对其进行测试,我希望能够通过Vader测试来验证该修复程序并防止出现回归。

我将使用:ls命令来验证缓冲区列表没有增长,但是我不知道如何从Vader访问此输出。

那么,可以使用Vader来测试缓冲区列表没有增长吗?本质上,我只需要验证执行命令后所显示的缓冲区列表与以前相同即可。我不需要对缓冲区列表进行细粒度检查。

1 个答案:

答案 0 :(得分:2)

这不是Vader特有的,但是您可以通过:redir捕获任何Ex命令的输出,或者更方便地(在新的Vim版本中)使用:help execute()捕获。

但是,对于您所描述的用例,您根本不需要解析:ls的输出:缓冲区分配的数字越来越多,可以通过{{1 }}。因此,只需存储原始值并将其与以后的查询进行比较,就可以确保不创建其他缓冲区。

如果您确实需要对缓冲区进行更多的细粒度检查(您的问题尚不清楚),则可以对所有可能的缓冲区使用bufnr('$'),例如获取所有列出的缓冲区(或通过filter()加载的缓冲区):

bufloaded()