I have an integration test suite for the CLI . It currently has about 20 tests, and has been very useful in testing that fixes on the CLI to give some confidence fixes do not introduce other defects.
I originally started writing tests with java and junit. But jline hangs when testing the CLI in the same JVM as Junit. I next looked at using Java ProcessBuilder to execute the CLI, but that was unreliable and left lots of processes hanging around. I ended up with the Python and the pexpect library and wiremock for simulating the REST services.
I can add some more instructions for adding new tests (e.g. recording REST calls with wiremock) when this branch gets merged in.
The changes are contained in the branch: stratos-651-cli-test-suite . In summary:
- there are some changes to the CLI components pom.xml
- there is a new src/test/python folder in the CLI component.
There is a Jenkins build to prove the tests are able to run on maven .