## 目录结构

```
.
├── framework                             # e2e framework
│       ├── config                        # config api for framework
│       │       └──config.go
│       ├── expect.go                     # basic value judge api
│       ├── framework.go
│       ├── test_context.go               # test context config api
│       ├── testbed.go
│       ├── tidbcluster.go
│       ├── workloadnode.go
│       └── util.go
├── testcase                              # testcases
│       ├── testcase1
│       │       └── testcase1.go
│       └── testcase2
│               └── testcase2.go
├── e2e.go
├── e2e_test.go                           # e2e entry point
└── e2e-readme.md
```

## testcase 添加方法

* STEP 1：在testcase目录下新建$(casename)/$(casename).go
* STEP 2：在e2e_test.go中添加如下引用`_ "github.com/pingcap/test-infra/sdk/e2etest/testcase/$(casename)"`
* STEP 3：编写testcase
  * ginkgo.Describe(...) & ginkgo.Context(...)
  * ginkgo.It(...)
  * framework.Framework `这是测试用例与sdk交互的主要类， 在某个测试容器层级创建，创建时注册fixture
    每个测试用例都在独立的k8s namespace中运行`
  

## ginkgo 运行测试

```
# run on local
$ make test KUBECONFIG="/path/to/kubeconfig" GRPC_PROXY=socks5://PROXY_HOST MYSQL_PROXY=socks5://PROXY_HOST
```

## 测试环境准备

Some e2ecases need config environment first: 
```
export KUBECONFIG="$HOME/.kube/config"
ginkgo --focus="TiDBCluster.Create" 
...
```

```
tiup playground
ginkgo --focus="TiDBCluster Local"
```

