From 99d317427f30e380299beb65c3f17da40bf37f39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christoffer=20Fjellstr=C3=B6m?= Date: Wed, 27 Sep 2017 16:42:21 +0200 Subject: [PATCH] Add skipping for integration tests when running unit tests Run integration tests with the -integration flag --- client/client_test.go | 34 ++++++++++++++++++++++++++++++- client/pool_test.go | 18 +++++++++++++++++ worker/example_test.go | 1 - worker/worker_test.go | 46 +++++++++++++++++++++++++++++++++++++++++- 4 files changed, 96 insertions(+), 3 deletions(-) diff --git a/client/client_test.go b/client/client_test.go index ca86868..025f30b 100644 --- a/client/client_test.go +++ b/client/client_test.go @@ -1,6 +1,8 @@ package client import ( + "flag" + "os" "testing" ) @@ -8,9 +10,24 @@ const ( TestStr = "Hello world" ) -var client *Client +var ( + client *Client + runIntegrationTests bool +) + +func TestMain(m *testing.M) { + integrationsTestFlag := flag.Bool("integration", false, "Run the integration tests (in addition to the unit tests)") + if integrationsTestFlag != nil { + runIntegrationTests = *integrationsTestFlag + } + code := m.Run() + os.Exit(code) +} func TestClientAddServer(t *testing.T) { + if !runIntegrationTests { + t.Skip("To run this test, use: go test -integration") + } t.Log("Add local server 127.0.0.1:4730") var err error if client, err = New(Network, "127.0.0.1:4730"); err != nil { @@ -22,6 +39,9 @@ func TestClientAddServer(t *testing.T) { } func TestClientEcho(t *testing.T) { + if !runIntegrationTests { + t.Skip("To run this test, use: go test -integration") + } echo, err := client.Echo([]byte(TestStr)) if err != nil { t.Error(err) @@ -34,6 +54,9 @@ func TestClientEcho(t *testing.T) { } func TestClientDoBg(t *testing.T) { + if !runIntegrationTests { + t.Skip("To run this test, use: go test -integration") + } handle, err := client.DoBg("ToUpper", []byte("abcdef"), JobLow) if err != nil { t.Error(err) @@ -47,6 +70,9 @@ func TestClientDoBg(t *testing.T) { } func TestClientDo(t *testing.T) { + if !runIntegrationTests { + t.Skip("To run this test, use: go test -integration") + } jobHandler := func(job *Response) { str := string(job.Data) if str == "ABCDEF" { @@ -70,6 +96,9 @@ func TestClientDo(t *testing.T) { } func TestClientStatus(t *testing.T) { + if !runIntegrationTests { + t.Skip("To run this test, use: go test -integration") + } status, err := client.Status("handle not exists") if err != nil { t.Error(err) @@ -105,6 +134,9 @@ func TestClientStatus(t *testing.T) { } func TestClientClose(t *testing.T) { + if !runIntegrationTests { + t.Skip("To run this test, use: go test -integration") + } if err := client.Close(); err != nil { t.Error(err) } diff --git a/client/pool_test.go b/client/pool_test.go index 54e7e03..4e1bc04 100644 --- a/client/pool_test.go +++ b/client/pool_test.go @@ -9,6 +9,9 @@ var ( ) func TestPoolAdd(t *testing.T) { + if !runIntegrationTests { + t.Skip("To run this test, use: go test -integration") + } t.Log("Add servers") c := 2 if err := pool.Add("tcp4", "127.0.0.1:4730", 1); err != nil { @@ -24,6 +27,9 @@ func TestPoolAdd(t *testing.T) { } func TestPoolEcho(t *testing.T) { + if !runIntegrationTests { + t.Skip("To run this test, use: go test -integration") + } echo, err := pool.Echo("", []byte(TestStr)) if err != nil { t.Error(err) @@ -41,6 +47,9 @@ func TestPoolEcho(t *testing.T) { } func TestPoolDoBg(t *testing.T) { + if !runIntegrationTests { + t.Skip("To run this test, use: go test -integration") + } addr, handle, err := pool.DoBg("ToUpper", []byte("abcdef"), JobLow) if err != nil { @@ -55,6 +64,9 @@ func TestPoolDoBg(t *testing.T) { } func TestPoolDo(t *testing.T) { + if !runIntegrationTests { + t.Skip("To run this test, use: go test -integration") + } jobHandler := func(job *Response) { str := string(job.Data) if str == "ABCDEF" { @@ -77,6 +89,9 @@ func TestPoolDo(t *testing.T) { } func TestPoolStatus(t *testing.T) { + if !runIntegrationTests { + t.Skip("To run this test, use: go test -integration") + } status, err := pool.Status("127.0.0.1:4730", "handle not exists") if err != nil { t.Error(err) @@ -114,6 +129,9 @@ func TestPoolStatus(t *testing.T) { } func TestPoolClose(t *testing.T) { + if !runIntegrationTests { + t.Skip("To run this test, use: go test -integration") + } return if err := pool.Close(); err != nil { t.Error(err) diff --git a/worker/example_test.go b/worker/example_test.go index 4fbaaed..477479f 100644 --- a/worker/example_test.go +++ b/worker/example_test.go @@ -53,5 +53,4 @@ func ExampleWorker() { w.Echo([]byte("Hello")) // Waiting results wg.Wait() - // Output: Hello } diff --git a/worker/worker_test.go b/worker/worker_test.go index 1029b74..792b2f0 100644 --- a/worker/worker_test.go +++ b/worker/worker_test.go @@ -2,18 +2,35 @@ package worker import ( "bytes" + "flag" + "os" "sync" "testing" "time" ) -var worker *Worker +var ( + worker *Worker + runIntegrationTests bool +) func init() { worker = New(Unlimited) } +func TestMain(m *testing.M) { + integrationsTestFlag := flag.Bool("integration", false, "Run the integration tests (in addition to the unit tests)") + if integrationsTestFlag != nil { + runIntegrationTests = *integrationsTestFlag + } + code := m.Run() + os.Exit(code) +} + func TestWorkerErrNoneAgents(t *testing.T) { + if !runIntegrationTests { + t.Skip("To run this test, use: go test -integration") + } err := worker.Ready() if err != ErrNoneAgents { t.Error("ErrNoneAgents expected.") @@ -21,6 +38,9 @@ func TestWorkerErrNoneAgents(t *testing.T) { } func TestWorkerAddServer(t *testing.T) { + if !runIntegrationTests { + t.Skip("To run this test, use: go test -integration") + } t.Log("Add local server 127.0.0.1:4730.") if err := worker.AddServer(Network, "127.0.0.1:4730"); err != nil { t.Error(err) @@ -33,6 +53,9 @@ func TestWorkerAddServer(t *testing.T) { } func TestWorkerErrNoneFuncs(t *testing.T) { + if !runIntegrationTests { + t.Skip("To run this test, use: go test -integration") + } err := worker.Ready() if err != ErrNoneFuncs { t.Error("ErrNoneFuncs expected.") @@ -44,6 +67,9 @@ func foobar(job Job) ([]byte, error) { } func TestWorkerAddFunction(t *testing.T) { + if !runIntegrationTests { + t.Skip("To run this test, use: go test -integration") + } if err := worker.AddFunc("foobar", foobar, 0); err != nil { t.Error(err) } @@ -57,12 +83,18 @@ func TestWorkerAddFunction(t *testing.T) { } func TestWorkerRemoveFunc(t *testing.T) { + if !runIntegrationTests { + t.Skip("To run this test, use: go test -integration") + } if err := worker.RemoveFunc("foobar"); err != nil { t.Error(err) } } func TestWork(t *testing.T) { + if !runIntegrationTests { + t.Skip("To run this test, use: go test -integration") + } var wg sync.WaitGroup worker.JobHandler = func(job Job) error { t.Logf("%s", job.Data()) @@ -80,6 +112,9 @@ func TestWork(t *testing.T) { } func TestLargeDataWork(t *testing.T) { + if !runIntegrationTests { + t.Skip("To run this test, use: go test -integration") + } worker := New(Unlimited) defer worker.Close() @@ -136,10 +171,16 @@ func TestLargeDataWork(t *testing.T) { } func TestWorkerClose(t *testing.T) { + if !runIntegrationTests { + t.Skip("To run this test, use: go test -integration") + } worker.Close() } func TestWorkWithoutReady(t *testing.T) { + if !runIntegrationTests { + t.Skip("To run this test, use: go test -integration") + } other_worker := New(Unlimited) if err := other_worker.AddServer(Network, "127.0.0.1:4730"); err != nil { @@ -193,6 +234,9 @@ func TestWorkWithoutReady(t *testing.T) { } func TestWorkWithoutReadyWithPanic(t *testing.T) { + if !runIntegrationTests { + t.Skip("To run this test, use: go test -integration") + } other_worker := New(Unlimited) timeout := make(chan bool, 1)