@@ -90,6 +90,10 @@ vet: ## Run go vet against code.
9090test : manifests generate fmt vet envtest # # Run tests.
9191 KUBEBUILDER_ASSETS=" $( shell $( ENVTEST) use $( ENVTEST_K8S_VERSION) --bin-dir $( LOCALBIN) -p path) " go test $$(go list ./... | grep -v /e2e ) -coverprofile cover.out
9292
93+ .PHONY : test-code-coverage
94+ test-code-coverage : test
95+ $(GO_TEST_COVERAGE ) --config=./.github/.testcoverage.yml
96+
9397.PHONY : test-race-condition
9498test-race-condition : manifests generate fmt vet envtest # # Run tests with race detection enabled.
9599 KUBEBUILDER_ASSETS=" $( shell $( ENVTEST) use $( ENVTEST_K8S_VERSION) --bin-dir $( LOCALBIN) -p path) " go test -race $$(go list ./... | grep -v /e2e )
@@ -295,12 +299,14 @@ KUSTOMIZE ?= $(LOCALBIN)/kustomize-$(KUSTOMIZE_VERSION)
295299CONTROLLER_GEN ?= $(LOCALBIN ) /controller-gen-$(CONTROLLER_TOOLS_VERSION )
296300ENVTEST ?= $(LOCALBIN ) /setup-envtest-$(ENVTEST_VERSION )
297301GOLANGCI_LINT = $(LOCALBIN ) /golangci-lint-$(GOLANGCI_LINT_VERSION )
302+ GO_TEST_COVERAGE = $(LOCALBIN ) /go-test-coverage-$(GO_TEST_COVERAGE_VERSION )
298303
299304# # Tool Versions
300305KUSTOMIZE_VERSION ?= v5.3.0
301306CONTROLLER_TOOLS_VERSION ?= v0.16.1
302307ENVTEST_VERSION ?= release-0.17
303308GOLANGCI_LINT_VERSION ?= v1.57.2
309+ GO_TEST_COVERAGE_VERSION ?= v2.14.3
304310
305311.PHONY : kustomize
306312kustomize : $(KUSTOMIZE ) # # Download kustomize locally if necessary.
@@ -322,6 +328,11 @@ golangci-lint: $(GOLANGCI_LINT) ## Download golangci-lint locally if necessary.
322328$(GOLANGCI_LINT ) : $(LOCALBIN )
323329 $(call go-install-tool,$(GOLANGCI_LINT ) ,github.com/golangci/golangci-lint/cmd/golangci-lint,${GOLANGCI_LINT_VERSION})
324330
331+ .PHONY : go-test-coverage
332+ go-test-coverage : $(GO_TEST_COVERAGE ) # # Download go-test-coverage locally if necessary.
333+ $(GO_TEST_COVERAGE ) : $(LOCALBIN )
334+ $(call go-install-tool,$(GO_TEST_COVERAGE ) ,github.com/vladopajic/go-test-coverage/v2,${GO_TEST_COVERAGE_VERSION})
335+
325336# go-install-tool will 'go install' any package with custom target and name of binary, if it doesn't exist
326337# $1 - target path with name of binary (ideally with version)
327338# $2 - package url which can be installed
0 commit comments