ROOT_PKG ?= "github.com/vartanbeno/go-reddit" LIST_PKG := $(shell go list $(ROOT_PKG)/...) # Tests TEST_TIMEOUT ?= 20 .DEFAULT_GOAL := usage # Print colorized log define log echo "[$(@)] $(1)" endef .PHONY: all all: fmt vet test test-coverage .PHONY: usage usage: @echo "make [all|fmt|vet|test|test-coverage]" .PHONY: fmt fmt: @$(call log,"Running formatter") @go fmt $(LIST_PKG) .PHONY: vet vet: @$(call log,"Running vet") @go vet -all $(LIST_PKG) .PHONY: test test: fmt vet @$(call log,"Running tests") @go test -v -race -short -timeout $(TEST_TIMEOUT)s $(ARGS) $(LIST_PKG) .PHONY: test-coverage test-coverage: fmt vet @$(call log,"Running tests with coverage") @go test -v -race -short -timeout $(TEST_TIMEOUT)s $(ARGS) -coverprofile=coverage.out $(LIST_PKG) @go tool cover -func=coverage.out @go tool cover -html=coverage.out -o coverage.html