higress-group/higress

Optimize the e2e testing framework to support testing of resource modifications

开放

#814 创建于 2024年2月2日

 (0 条评论) (0 个反应) (1 位负责人)Go (1,219 个派生)github user discovery
area/e2ehelp wantedlevel/challenge

仓库指标

星标
 (9,036 个星标)
PR 合并指标
 (平均合并 7天 9小时) (30 天内合并 18 个 PR)

描述

Why do you need it?

https://github.com/alibaba/higress/blob/29c95ea5571e459a7f230016ceaf96b1dc8e3df9/test/e2e/conformance/tests/httproute-app-root.go#L29-L34

Currently, for manifest resources, only tests after creation are supported, and modified tests are not supported.

How could it be?

Add the concept of stage to the test case. Each stage can modify or delete the manifest, and complete a staged test based on the stage.

And the manifest is not deleted after the stage is completed. Only when the overall test case is completed, all manifests created in the test case are deleted.

It might be configured like this:

var HTTPRouteAppRoot = suite.ConformanceTest{
	ShortName:   "HTTPRouteAppRoot",
	Description: "The Ingress in the higress-conformance-infra namespace uses the app root.",
	Manifests:   []string{"tests/httproute-app-root-base.yaml"},
	Features:    []suite.SupportedFeature{suite.HTTPConformanceFeature},
        Stages:  []suite.ConformanceStageTestUnit {
                {
                    Manifests:   []string{"tests/httproute-app-root-stage-1.yaml","tests/httproute-app-route-temp.yaml"},
             	    Test: func(t *testing.T, suite *suite.ConformanceTestSuite) {},
                },
                {
                    Manifests:   []string{"tests/httproute-app-root-stage-2.yaml"},
                    DeleteManifests: []string{"tests/httproute-app-route-temp.yaml"},
             	    Test: func(t *testing.T, suite *suite.ConformanceTestSuite) {},
                },
         }

贡献者指南