@@ -5,8 +5,12 @@ import (
55 "k8s.io/apimachinery/pkg/runtime"
66 utilruntime "k8s.io/apimachinery/pkg/util/runtime"
77 clientgoscheme "k8s.io/client-go/kubernetes/scheme"
8- ctrl "sigs.k8s.io/controller-runtime"
8+ "k8s.io/client-go/rest"
9+ "sigs.k8s.io/controller-runtime/pkg/client"
10+ "sigs.k8s.io/controller-runtime/pkg/client/fake"
11+ "sigs.k8s.io/controller-runtime/pkg/envtest"
912 "sigs.k8s.io/controller-runtime/pkg/manager"
13+ "testing"
1014)
1115
1216var (
@@ -20,9 +24,25 @@ func init() {
2024 //+kubebuilder:scaffold:scheme
2125}
2226
23- func NewCtrlManager () manager.Manager {
24- mgr , _ := ctrl .NewManager (ctrl .GetConfigOrDie (), ctrl.Options {
25- Scheme : scheme ,
27+ func NewCtrlManager (t * testing.T ) (manager.Manager , * envtest.Environment ) {
28+ envTest := & envtest.Environment {}
29+ cfg , err := envTest .Start ()
30+ if err != nil {
31+ t .Fatalf ("failed to start envtest: %v" , err )
32+ }
33+ defer envTest .Stop ()
34+
35+ // 使用 cfg 创建一个假的 manager.Manager 对象
36+ mgr , err := manager .New (cfg , manager.Options {
37+ NewClient : func (config * rest.Config , options client.Options ) (client.Client , error ) {
38+ // 返回一个假的客户端
39+ return fake .NewClientBuilder ().Build (), nil
40+ },
2641 })
27- return mgr
42+
43+ if err != nil {
44+ t .Fatalf ("failed to start envtest: %v" , err )
45+ }
46+ return mgr , envTest
2847}
48+
0 commit comments