higress icon indicating copy to clipboard operation
higress copied to clipboard

Optimize the e2e testing framework to support testing of resource modifications

Open johnlanni opened this issue 1 year ago • 0 comments

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) {},
                },
         }

johnlanni avatar Feb 02 '24 08:02 johnlanni