Skip to content
This repository has been archived by the owner on Jan 18, 2023. It is now read-only.

nathany/looper

Repository files navigation

Looper

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.

Looper screenshot

Status

Stories in Ready Build Status Coverage GoDoc

Throughput Graph

This is an early alpha. There is still quite a lot to do (Hot Compiles, Growl notifications, and interactions for profiling, benchmarking, etc.).

Get Going

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.

Gat (Go Autotest)

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.

Blunderbuss (Hot Compile)

...to be determined...

Blunderbuss is inspired by shotgun, both in name and purpose.

Interactions

  • a, all, : Run all tests.
  • h, help: Show help.
  • e, exit: Quit Looper

Related Projects

General purpose

  • Reflex by Caleb Spare
  • rerun by John Asmuth to autobuild and kill/relaunch
  • Watch by Ethan Burns includes acme integration
  • watcher by Travis Cline

Testing

Web development

Comprehensive

Thanks

Special thanks to Chris Howey for the fsnotify package.