higress-group/higress

Optimize the e2e testing framework to support testing of resource modifications

Open

#814 opened on Feb 2, 2024

View on GitHub
 (0 comments) (0 reactions) (1 assignee)Go (1,144 forks)github user discovery
area/e2ehelp wantedlevel/challenge

Repository metrics

Stars
 (8,582 stars)
PR merge metrics
 (PR metrics pending)

Description

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

Contributor guide