Vim plugin for gounit tool that allows you to generate Go tests easily.
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.
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>
.
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>
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'