diff --git a/tests/common/main_test.go b/tests/common/main_test.go index d03f120e0..af5032a6e 100644 --- a/tests/common/main_test.go +++ b/tests/common/main_test.go @@ -21,7 +21,8 @@ import ( "go.etcd.io/etcd/tests/v3/framework/config" ) -var testRunner = framework.UnitTestRunner +var testRunner framework.TestRunner + var clusterTestCases = []testCase{ { name: "NoTLS", diff --git a/tests/common/unit_test.go b/tests/common/unit_test.go new file mode 100644 index 000000000..d88b15594 --- /dev/null +++ b/tests/common/unit_test.go @@ -0,0 +1,33 @@ +// Copyright 2022 The etcd Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//go:build !(e2e || integration) + +package common + +import ( + "go.etcd.io/etcd/tests/v3/framework" + "go.etcd.io/etcd/tests/v3/framework/config" +) + +func init() { + testRunner = framework.UnitTestRunner +} + +// When a build tag (e.g. e2e or integration) isn't configured in IDE, +// then IDE may complain "Unresolved reference 'WithAuth'". So we need +// to define a default WithAuth to resolve such case. +func WithAuth(userName, password string) config.ClientOption { + return func(any) {} +} diff --git a/tests/framework/framework.go b/tests/framework/framework.go index 5f41ba6f5..85557880d 100644 --- a/tests/framework/framework.go +++ b/tests/framework/framework.go @@ -16,7 +16,7 @@ package framework var ( // UnitTestRunner only runs in `--short` mode, will fail otherwise. Attempts in cluster creation will result in tests being skipped. - UnitTestRunner testRunner = unitRunner{} + UnitTestRunner TestRunner = unitRunner{} // E2eTestRunner runs etcd and etcdctl binaries in a separate process. E2eTestRunner = e2eRunner{} // IntegrationTestRunner runs etcdserver.EtcdServer in separate goroutine and uses client libraries to communicate. diff --git a/tests/framework/interface.go b/tests/framework/interface.go index a1f9bb174..0acf2f3a2 100644 --- a/tests/framework/interface.go +++ b/tests/framework/interface.go @@ -22,7 +22,7 @@ import ( "go.etcd.io/etcd/tests/v3/framework/config" ) -type testRunner interface { +type TestRunner interface { TestMain(m *testing.M) BeforeTest(testing.TB) NewCluster(context.Context, testing.TB, config.ClusterConfig) Cluster diff --git a/tests/framework/unit.go b/tests/framework/unit.go index 27114373c..7a865d85c 100644 --- a/tests/framework/unit.go +++ b/tests/framework/unit.go @@ -27,7 +27,7 @@ import ( type unitRunner struct{} -var _ testRunner = (*unitRunner)(nil) +var _ TestRunner = (*unitRunner)(nil) func (e unitRunner) TestMain(m *testing.M) { flag.Parse()