簡體   English   中英

如何在 vimrc 文件中對 vim function 進行單元測試?

[英]How to unit test vim function in vimrc file?

我在 my.vimrc 文件中有函數,想測試這個 function 正在做我想做的事情。 我想知道是否有一種快速的方法可以在.vimrc 中對 function 進行單元測試。

我的 function 看起來像:

fun! FindPythonMainFile(filename, )
    let file = findfile(filename)  
      if (file)
         echo "file exists"
      else
         echo "file doesn't exists"
     endif

endf

最良好的問候。

我要做的第一件事是將這些函數從你的.vimrc移到單獨autoload-functions中。 您將獲得額外的好處,例如獨特的命名空間、更少的混亂、更快的 Vim 啟動,並且可以(仍然)從任何地方(映射、命令、單元測試)調用這些。

對於一個最小的、自己動手的測試,只需調用 function 並做出斷言。 給定的 function 很難測試,因為它的副作用是:echo ,你必須做一個麻煩的:redirexecute()來捕獲它。 最好將其拆分為實際檢查(返回布爾值)和帶有:echo的單獨報告 function 。

要通知自己測試結果,您可以:echo任何錯誤/結果,或使用:cquit中止。 請參閱此處了解如何使用 Vim 的內置assert_...()函數進行斷言和最小化報告。

我認為沒有多少人測試他們自己的個人定制(但我為你嘗試這樣做而鼓掌,)對於插件(你可能打算發布給其他人)。 這是另一回事,那里存在多種方法和框架。 因此,如果您打算 go 那個方向,可能值得評估那些。 我的runVimTests 插件就是這樣一個框架(我用它來測試我的幾十個插件); 插件頁面有替代方案的鏈接。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM