Looper is a development tool for the Go Programming Language. It automatically runs your tests and (will eventually) hot compile your code when it detects file system changes.
This is an early alpha. There is still quite a lot to do (Hot Compiles, Growl notifications, and interactions for profiling, benchmarking, etc.).
If you are on OS X, you need to first install GNU Readline via Homebrew:
$ brew install readline
If you are on Linux, you'll need the readline development headers:
Debian/Ubuntu:
sudo apt-get install libreadline-dev
Red Hat-based systems:
sudo yum install readline-devel
To install Looper, or to update your installation, run:
$ go get -u github.com/nathany/looper
Then run looper
in your project folder:
$ looper
Looper 0.3.3 is watching your files
Type help for help.
Watching path ./
Note: There is a known issue where tests may run multiple times on OS X. Until this is resolved, please add your development folder to Spotlight Privacy in System Preferences.
Packages are the unit of compilation in Go. By convention, each package has a separate folder, though a single folder may also have a *_test
package for black box testing.
When Looper detects a change to a *.go file
, it will build & run the tests for that directory. You can also run all tests against all packages at once.
To setup a Suite definition (Gocheck, PrettyTest), additional Checkers, or other test helpers, use any test file you like in the same folder (eg. suite_test.go
).
Gat is inspired by Andrea Fazzi's PrettyAutoTest.
...to be determined...
Blunderbuss is inspired by shotgun, both in name and purpose.
a
,all
,↩
: Run all tests.h
,help
: Show help.e
,exit
: Quit Looper
- Reflex by Caleb Spare
- rerun by John Asmuth to autobuild and kill/relaunch
- Watch by Ethan Burns includes acme integration
- watcher by Travis Cline
- PrettyAutoTest by Andrea Fazzi
- Glitch by Levi Cook
- App Engine devserver
- devweb by Russ Cox
- gin by Jeremy Saenz
- rego by Quinn Slack
- shotgun-go by Daniel Heath
- Revel by Rob Figueiredo does Hot Code Reloading
Special thanks to Chris Howey for the fsnotify package.