You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

50 lines
1.5 KiB

package framework
import (
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
"k8s.io/client-go/dynamic"
"k8s.io/client-go/kubernetes"
"k8s.io/client-go/rest"
)
// 1. 定义一个测试的入口函数Describe这里接收测试的描述以及contextFunc
// 1.1 这里边会调用context创建方法来创建context
// 1.2 这个context里面会有执行一些我们期望的行为
// 2. 这个contextFunc的签名符合func(ctx *TestContext, f *Framework)
// 3. 这个contextFunc的函数体就是测试函数的内容本身
// 4. 由于这个contextFunc的参数中有ctx入参那么在执行测试函数体的时候就可以使用ctx中的内容或方法。
type TestContext struct {
Name string
Namespace string
Config *rest.Config
MasterIP string
}
type ContextFunc func(ctx *TestContext, f *Framework)
// 如果不用动态的client那么我们访问这些资源的时候就需要
// 1. 自己创建rest api 的请求
// 2. 获取对应资源的 client sdk
// CreateDynamicClient 创建动态的 client用来访问自定定义或者后安装的资源
func (tc *TestContext) CreateDynamicClient() dynamic.Interface {
By("Create a Dynamic Client")
c, err := dynamic.NewForConfig(tc.Config)
if err != nil {
Expect(err).Should(BeNil())
}
return c
}
// 创建一个 clientset用来访问内置资源
func (tc *TestContext) CreateClientSet() *kubernetes.Clientset {
By("Create a ClientSet client")
c, err := kubernetes.NewForConfig(tc.Config)
if err != nil {
Expect(err).Should(BeNil())
}
return c
}