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

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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
}