Skip to content

Conversation

@dgarros
Copy link
Contributor

@dgarros dgarros commented Dec 1, 2016

One thing that has been bothering me for some time is the fact that we have limited or no automated tests for our public projects on github. For this project, we don't have anything as of today.
In many cases, some minor changes have created big issues that have impacted many people.
To solve this problem, I found a solution to spin-up virtual devices on-demand directly from Travis-CI. The idea is to use the Ravello Cloud.
In order to keep thinks under control, it's only possible from Travis to start a predefine topology.

Here I have created a 2 nodes vqfx topologies but we could imagine anything: 1 vMX, 4 vMX with all versions of Junos available.

It's possible to see the applications running on Ravello and access all information on the devices (console, IP etc ..) here:
https://cloud.ravellosystems.com/#/GtHFbCOuKgD1pcfkvCCIgenj6DOtn3VgRLjaYipdideCsiPC1NxJitt1UHfhF0Bf/apps

To illustrate the example, I have created some tests (using Ansible) for the modules junos_ping and junos_jsnapy. Everything is located inside the directory tests. there is one playbook per module and if some additional files are required there is also one directory per modules to group these files properly.

I'm using the Docker container to run the tests.
Right now I'm running the tests for 2 versions of Ansible and for each version, a new and dedicated topology is dynamically created on Ravello.
The results and the logs can be seen on Travis-CI.
https://travis-ci.org/dgarros/ansible-junos-stdlib/builds/180282166

I'm very excited by this new architecture and I hope we can integrate that to some of our open source projects, starting with this one.
Damien

@vnitinv vnitinv merged commit a2b271e into Juniper:master Dec 21, 2016
@dgarros dgarros deleted the unittest branch January 25, 2018 17:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants