ram
ram copied to clipboard
Moved to GitLab: A golang opiniated continuous testing tool ๐
Ram ๐ โ a golang opiniated continuous testing tool
This is a very opiniated ยซ continuous testing ยป tool for =Go=. In a nutshell it does : watch a folder (gopath or notโฆ) and execute tests when file changes.
It supports:
- changing code in a package will only re-run tests on this package
- changing a test code, it will only re-run that test
Install
go get -u github.com/vdemeester/ram
Examples
On knative/build-pipeline
๐
$ ram -d ./pkg -d ./cmd -- -v
INFO Watching directories: ./pkg, pkg/apis, pkg/apis/pipeline, pkg/apis/pipeline/v1alpha1, pkg/client, pkg/client/clientset, pkg/client/clientset/versioned, pkg/client/informers, pkg/client/informers/externalversions, pkg/client/listers, pkg/client/listers/pipeline, pkg/errors, pkg/foo, pkg/logging, pkg/reconciler, pkg/reconciler/testing, pkg/reconciler/v1alpha1, pkg/reconciler/v1alpha1/pipeline, pkg/reconciler/v1alpha1/pipelinerun, pkg/reconciler/v1alpha1/taskrun, pkg/system, ./cmd/, cmd/controller, cmd/controller/kodata, cmd/kubeconfigwriter, cmd/kubeconfigwriter/kodata, cmd/webhook, cmd/webhook/kodata
INFO Run go test -v ./${dir}
โโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโ
โ filewatcher โ go test -v ./pkg/foo โ
โโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโ
=== RUN TestBar
--- PASS: TestBar (0.00s)
=== RUN TestFoo
--- PASS: TestFoo (0.00s)
PASS
ok github.com/knative/build-pipeline/pkg/foo (cached)
โโโโโโฌโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโ
โ OK โ pkg/foo/foo.go โ 299.754067ms โ
โโโโโโดโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ filewatcher โ go test -v ./pkg/foo -test.run ^TestFoo$ โ
โโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
=== RUN TestFoo
--- PASS: TestFoo (0.00s)
PASS
ok github.com/knative/build-pipeline/pkg/foo (cached)
โโโโโโฌโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโ
โ OK โ pkg/foo/foo_test.go โ 255.015843ms โ
โโโโโโดโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ filewatcher โ go test -v ./pkg/foo -test.run ^TestBar$ โ
โโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
=== RUN TestBar
--- PASS: TestBar (0.00s)
PASS
ok github.com/knative/build-pipeline/pkg/foo (cached)
โโโโโโฌโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโ
โ OK โ pkg/foo/bar_test.go โ 258.800903ms โ
โโโโโโดโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโ
Usage
See ram --help
Credits
Huge props to @dnephin for filewatcher
๐ค