Skip to content

Latest commit

 

History

History
70 lines (58 loc) · 2.86 KB

README.md

File metadata and controls

70 lines (58 loc) · 2.86 KB

gounit-vim

Vim plugin for gounit tool that allows you to generate Go tests easily.

Demo

demo

Installation

gounit-vim requires gounit to be available in your $PATH. Alternatively you can provide path to gounit using g:gounit_bin setting.

Plugin installation:

  • Pathogen
    git clone https://github.com/hexdigest/gounit-vim.git ~/.vim/bundle/gounit-vim
    
  • vim-plug
    Plug 'hexdigest/gounit-vim'
    
  • NeoBundle
    NeoBundle 'hexdigest/gounit-vim'
    
  • Vundle
    Plugin 'hexdigest/gounit-vim'
    
  • Vim packages (since Vim 7.4.1528)
    git clone https://github.com/hexdigest/gounit-vim.git ~/.vim/pack/plugins/start/gounit-vim
    

You will also need to install all the necessary GoUnit binaries. It is easy to install by providing a command :GoUnitInstallBinaries, which will go get all the required binaries.

Usage

Call :GoUnit to generate test for the function declaration in the current line or all functions selected in visual mode. GoUnit also understands "range" parameters:

:5,10GoUnit     " genereate tests for functions from line 5 to line 10
:.,$GoUnit      " from the current line till the end of the file
:0,.GoUnit      " from the first line to the current line
:%GoUnit        " generate tests for the whole file

These commands generate tests using template that you set as a preferred with the :GoUnitTemplateUse <template> command. If you don't want to change your preferred template you can use all of the above commands followed by the name of the template, i.e. :GoUnit minimock If you have wildmenu option enabled you can pick desired template from the list of all registered templates with :GoUnit <TAB>.

Managing templates

There are few commands to manage your test templates:

:GoUnitTemplateAdd             " register contents of the current buffer as a new templates
:GoUnitTemplateAdd /file/name  " register /file/name as new template
:GoUnitTemplateDel template    " remove template
:GoUnitTemplateList            " display all registered test templates
:GoUnitTemplateUse template    " set template as preferred

Also you can create useful maps to use it with vim-go plugin for fast test generation.

" maps your leader key + gt to generate tests for the function under your cursor
nnoremap <leader>gt :normal vaf<cr>:GoUnit<cr>

Settings

If you want you can set path to your gounit binary if it's not in your path, for example:

let g:gounit_bin = '/home/user/go/bin/gounit'