Run Go tests and programs from Emacs (>= 24.3)
The recommended way to install gotest.el
is via MELPA:
M-x package-install gotest.el
or Cask:
(depends-on "gotest.el")
The following interactive commands can be run via M-x or bound to a key of your choice.
All go-test-*
functions can optionally configure the buffer-local
go-test-args
variable to pass additional arguments. Or, by using
a prefix command, you will be prompted for arguments. For example:
C-u M-x go-test-current-test.
When using the '_
prefix arg with any of the go-test-*
or go-run
functions, the most recent arguments from history will be used without
prompting. For example: M-- M-x go-run.
Launch unit tests for the current test.
Rerun the current test.
Launch unit tests and examples for the current file
Launch unit tests and examples for the current project.
Launch unit tests coverage for the current project.
Launch go benchmark on current benchmark
Launch go benchmark on current file
Launch go benchmark on current project
Launch program via go run
. Optionally configure the buffer-local
go-test-args
variable to pass additional arguments. Or, by using
a prefix command, you will be prompted for arguments. For example:
C-u M-x go-run.
Be sure to make use of minibuffer history (C-r) to recall
recent arguments to go run
. And remember that the M--
prefix can be used in combination with your go run
key binding to
use the most recent arguments without prompting. The go file is
included in history, so you can go-run
from history regardless of
which buffer you are currently visiting.
You can create some key bindings with these commands:
(define-key go-mode-map (kbd "C-x f") 'go-test-current-file)
(define-key go-mode-map (kbd "C-x t") 'go-test-current-test)
(define-key go-mode-map (kbd "C-x p") 'go-test-current-project)
(define-key go-mode-map (kbd "C-x b") 'go-test-current-benchmark)
(define-key go-mode-map (kbd "C-x x") 'go-run)
If your project use gb, gotest will use this tool to launch unit tests.
gotest.el
use Cask for dependencies management. Install it and
retrieve dependencies :
$ curl -fsSkL https://raw.github.com/cask/cask/master/go | python
$ export PATH="$HOME/.cask/bin:$PATH"
$ cask
-
Launch unit tests from shell
$ make clean test
-
Using overseer :
Keybinding | Description |
---|---|
C-c , t | launch unit tests from buffer |
C-c , b | launch unit tests |
C-c , g | launch unit tests with tag (find, regexp, ...) |
- Tips:
If you want to launch a single unit test, add a specify tag :
(ert-deftest test-foobar ()
:tags '(current)
And launch it using : C-c , g and specify tag : current
See here
A changelog is available here.
See LICENSE.
Nicolas Lamirault nicolas.lamirault@gmail.com