.master-plan.yml file will contain all the desired test cases for generic experiments. Detailed test cases are derived from this master plan. The test cases will be placed in the repo with enough hints to trace it back to this test case id. It is also used to define or track a manual coverage in the pipeline (as a separate job) which can be used to define the stability of an experiment.
Following is a sample master plan yaml:
kind: MasterPlan
metadata:
name: litmus-e2e-master-testplan
spec:
tests:
- tcid: TCID-EC2-GENERIC-APP-POD-DELETE
name: "TCID-EC2-GENERIC-APP-POD-DELETE"
description: "Fail the application pod"
labels:
test/feature: "Generic-App"
test/tags: "pod, kill"
git/location: "https://github.com/litmuschaos/litmus-e2e/tree/gh-pages/generic-pipeline/pod-delete"
test/status: "Done"
- tcid: TCID-EC2-GENERIC-APP-CONTAINER-KILL
name: "TCID-EC2-GENERIC-APP-CONTAINER-KILL"
description: "Kill one container in the application pod"
labels:
test/feature: "Generic-App"
test/tags: "pod, container"
git/location: "https://github.com/litmuschaos/litmus-e2e/tree/gh-pages/generic-pipeline/container-kill"
test/status: "Not Done"
-
Each test case would be specified in individual GitLab jobs in gitlab-ci.yaml.
-
The format of adding
tcid
isTCID-<PLATFORM>-<TEST-CATEGORY>-<TEST-SCOPE>-<ACTUAL-TEST-NAME>
.PLATFORM: It is the platform where the e2e tests are running.
TEST-CATEGORY: The category of the test. It can be generic, litmus-portal, openebs, or any other.
TEST-SCOPE: Specify the scope of the test. It can be an app for application-level test or infra for infra level test.
ACTUAL-TEST-NAME: The actual name of the testExample: TCID-EC2-GENERIC-APP-POD-DELETE
Following items are added in list format:
Items | Description |
---|---|
tcid | It is a unique test case id written in a specific format defined above |
name | Name of the test. The should define the actual test logic. |
description | It should be the details description of the test that is which functionality it will test along with the expectation. |
labels | The labels are added for its more specification and its location in the repository. The comman labels are:test/feature : The name of exact feature it will test.test/tags : Some tags related to the test.git/location : The location of test README.md which contains the details description of the test along with its everyday status in pipeline. The master branch of this repository mainly contains the test README.test/status : These can be used to test if the test has been added in the pipeline (that is in .gitlab-ci.yml ) or not. If added the it will update with DONE and if not added it will be NOT DONE .
|