Table Of Contents
...
Addresses
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
Initial implementation presentation can be found in CPS Developers Team Meeting Recordings
Overview
CSIT (Continuous System and Integration Testing) is expected to be a part of automated verification procedure invoked on review and merge stages.
...
- Builds an image within a local docker (no publishing)
- Executes the integration testing using shell script which
- on startup stage - creates and starts the docker containers based on image built together with other containers required (using docker-compose),
ensures the application is initialized - on test execution stage - executes integration test suites using Robot framework
- on tear down stage - stops and removes containers
- on startup stage - creates and starts the docker containers based on image built together with other containers required (using docker-compose),
- Collects the Robot framework reports
More details are described in following documenton flow: Project-specific CSIT structure
CSIT migration notes
Previously all the CSIT tests for all the ONAP projects were allocated in a same repository integration/csit.
Using shared repository did cause organisational difficulties (review approval etc) maintaining the tests, so it was decided to store CSIT tests on a per project basis.
More details: Moving CSIT to project repositories
Implementation approach
Test resources
All the CSIT related resources are allocated in csit/ folder in the project repository root.
The entry point for testing is run-projects-csit.sh shell script
The directory structure:
- plans/ contains testing plans, each sub-folder represents a separate test plan, contains
- startup.sh - serves docker containers startup
- testplan.txt - lists test-suits
- teardown.sh - serves docker containers stopping and images removal
- scripts/ contains shell scripts used on tests executions
- tests/ contains test suits which are processed by folder name (relative to tests folder) taken from testplan.txt
Jenkins jobs
Jenkins jobs configuration is managed using ci-management repository.
Both legacy and new job templates are defined in jjb/integration/integration-templates-csit.yaml
The legacy CSIT job templates are
Code Block |
---|
'{project-name}-{stream}-verify-csit-{functionality}'
'{project-name}-{stream}-csit-{functionality}' |
New CSIT job templates are
Code Block |
---|
'{project-name}-review-verification-maven-{stream}'
'{project-name}-merge-verification-maven-{stream}' |
The example of on per project CSIT is ccsdk/distribution project
The associated Jenkins job is described in jjb/ccsdk/ccsdk-csit.yaml
NB. the Jenkins job template publishing Robot Framework reports is the only reason the use of Robot Framework is currently necessary.
It requires job templates update (new templates) in order to use alternative tools.
Resources
- Maximizing Benefits of CSIT in ONAP Development
- Creating a CSIT Test (Legacy, includes video presentation)
- Robot Framework