Highlights the improvements on marvin I made in these days on pytest branch:
1. Switch test framework from nose to pytest, while also maintain the
back-compatibility for existing test cases.
pytest is more flexible than nose, more enjoyable to work with.
2. Speed up test speed a LOT: It only takes 250-300 seconds for a single run
for all the test cases under test/integration/smoke folder, while it usually
takes 40 minutes to run before.
The speed up is coming from running test cases in parallel. pytest-xdist is
modified to fix the issue:
https://bitbucket.org/hpk42/pytest/issue/175/way-to-control-how-pytest-xdist-runs-tests.
we have a lot of existing test cases have to run in sequence per test class.
3. Add a new Jenkins job at
http://jenkins.buildacloud.org/job/fastsimulatorbuild/, which only takes 22
minutes for a full cycle build&test.
A new VM is created on digitalocean: 4G memory, 40G SSD, and added into
Jenkins.buildacloud.org. SSD is life saver, it really makes big difference
during build/test.
A new docker image is created, which has all the tools installed in order
to build and test: e.g. java/mysql/python/git/ installed.
A new Jenkins job is created to build and test periodically in every 20
minutes.
So far, the Jenkins job works very well, if everybody ok with what I am doing,
I want to merge pytest branch into master later. With a quick CI in hand, we
then can start to think about how to add gerrit into our system.