= ALMighty Test Services
:test: gometaliner
This repository consists of testing services provided by ALMighty.
== ALMighty Test Runner
=== Key features
- Running project build in different configurations in isolated sets of docker containers
Project itself depends on following tools, which are incorporated into the build process:
=== How to use it?
Stay tuned! Work in progress :) For the moment this repository consists of basic functionalities and infrastructure to write and test the code.
=== Start hacking [[hacking]]
You need to have following packages in place
Assuming that you have all the link:https://golang.org/doc/install[Golang prerequisites] in place (such as $GOPATH
), clone the repository first:
[source,bash]
NOTE: Have a look how link:https://github.com/moovweb/gvm[Go Version Manager] can help you simplifying configuration and management of different versions of Go.
Then run the build by simply executing make
from the root directory. This will perform following actions:
. Clean artifacts from the previous build
. Fetch or update dependencies using glide
. Compile and build binaries
. Run tests
When in doubt just make help
.
=== Continuous Testing [[testing]]
In order to continuously run the tests whenever code change occur execute following command from the root directory of the project:
[source,bash]
$ ginkgo watch -r
and keep it running in the terminal.
=== Code analysis [[code-analysis]]
To perform static analysis of the code base we use link:https://github.com/alecthomas/gometalinter[`gometalinter`] tool. To install it run following commands:
[source,bash]
$ go get -u github.com/alecthomas/gometalinter && gometalinter --install
In order to execute the check simply invoke make check
which effectively does:
[source,bash]
gometalinter --vendor --deadline 10s ./...