Separate tests 65/66765/1
authorVictor Morales <victor.morales@intel.com>
Fri, 14 Sep 2018 21:33:28 +0000 (14:33 -0700)
committerVictor Morales <victor.morales@intel.com>
Fri, 14 Sep 2018 21:33:28 +0000 (14:33 -0700)
The current tests can be separated in two categories: unit test and
integration tests. The criteria depends on the scope or dependencies
required for the test. This change provides a mechanism to test
only one category.

Change-Id: Ib7bac49cb0b2d14544fb9704345436a7ba71aead
Signed-off-by: Victor Morales <victor.morales@intel.com>
Issue-ID: MULTICLOUD-301

src/k8splugin/Makefile
src/k8splugin/api/handler_test.go
src/k8splugin/csar/parser_test.go
src/k8splugin/db/db_test.go
src/k8splugin/krd/krd_test.go

index 6171d8c..34b5198 100644 (file)
@@ -18,29 +18,41 @@ export GOPATH ...
 all: clean dep
        CGO_ENABLED=1 GOOS=linux GOARCH=amd64
        @find plugins -type d -not -path plugins -exec sh -c "ls {}/plugin.go | xargs go build -buildmode=plugin -a -tags netgo -o $(basename {}).so" \;
-       go build -a -tags netgo -o ./k8plugin ./cmd/main.go
+       @go build -a -tags netgo -o ./k8plugin ./cmd/main.go
 
 # The following is done this way as each patch on CI runs build and each merge runs deploy. So for build we don't need to build binary and hence
 # no need to create a static binary with additional flags. However, for generating binary, additional build flags are necessary. This if used with
 # mock plugin errors out for unit tests. So the seperation avoids the error.
 
-build: clean dep plugins tests
+build: clean dep plugins test
 deploy: build
 
-tests:
-       go build -buildmode=plugin -o ./mock_files/mock_plugins/mockplugin.so ./mock_files/mock_plugins/mockplugin.go
-       go test -v ./... -cover
+.PHONY: test
+test: unit integration
 
+.PHONY: unit
+unit:
+       @go test -v -tags 'unit' ./...
+
+.PHONY: integration
+integration: clean
+       @go build -buildmode=plugin -o ./mock_files/mock_plugins/mockplugin.so ./mock_files/mock_plugins/mockplugin.go
+       @go test -v -tags 'integration' ./...
+
+.PHONY: format
 format:
-       go fmt ./...
+       @go fmt ./...
 
+.PHONY: plugins
 plugins:
        @find plugins -type d -not -path plugins -exec sh -c "ls {}/plugin.go | xargs go build -buildmode=plugin -o $(basename {}).so" \;
 
+.PHONY: dep
 dep:
-       go get -u $(DEPENDENCIES)
+       @go get -u $(DEPENDENCIES)
        $(GOPATH)/bin/dep ensure
 
+.PHONY: clean
 clean:
        find . -name "*so" -delete
        @rm -f k8plugin
index df573d9..8d990da 100644 (file)
@@ -1,3 +1,5 @@
+// +build unit
+
 /*
 Copyright 2018 Intel Corporation.
 Licensed under the Apache License, Version 2.0 (the "License");
@@ -16,12 +18,13 @@ package api
 import (
        "bytes"
        "encoding/json"
-       "k8s.io/client-go/kubernetes"
        "net/http"
        "net/http/httptest"
        "reflect"
        "testing"
 
+       "k8s.io/client-go/kubernetes"
+
        "k8splugin/csar"
        "k8splugin/db"
 )
index cec5395..93473bc 100644 (file)
@@ -1,3 +1,5 @@
+// +build integration
+
 /*
 Copyright 2018 Intel Corporation.
 Licensed under the Apache License, Version 2.0 (the "License");
@@ -15,12 +17,13 @@ package csar
 
 import (
        "io/ioutil"
-       "k8s.io/client-go/kubernetes"
        "log"
        "os"
        "plugin"
        "testing"
 
+       "k8s.io/client-go/kubernetes"
+
        pkgerrors "github.com/pkg/errors"
        "gopkg.in/yaml.v2"
 
index 7ad252f..a5dc0eb 100644 (file)
@@ -1,3 +1,5 @@
+// +build unit
+
 /*
 Copyright 2018 Intel Corporation.
 Licensed under the Apache License, Version 2.0 (the "License");
index 7047a74..ad52f7e 100644 (file)
@@ -1,3 +1,5 @@
+// +build unit
+
 /*
 Copyright 2018 Intel Corporation.
 Licensed under the Apache License, Version 2.0 (the "License");