package discovery import ( "context" clientv3 "go.etcd.io/etcd/client/v3" "testing" "time" ) func TestResolveAll(t *testing.T) { client, err := clientv3.New(clientv3.Config{ Endpoints: []string{"127.0.0.1:2379"}, }) if err != nil { t.Error(err) } dis := NewEtcdDiscovery(client) serviceName := "TestService" // registry s1 := Server{ Addr: "127.0.0.1:1234", Name: serviceName, Attrs: map[string]string{"weight": "10"}, } ctx, cancel := context.WithCancel(context.Background()) err = dis.Registry(ctx, s1) if err != nil { t.Error(err) } // resolve servers, err := dis.ResolveAll(context.Background(), serviceName) if err != nil { t.Error(err) } if len(servers) == 0 || servers[0].Addr != s1.Addr { t.Error("resolveAll server addr error") } cancel() time.Sleep(time.Second) }