<div dir="ltr"><div>Hi stackers, </div><div><br></div><div>Code coverage is one of the very important metric of overall code quality especially in case of Python. It's quite important to ensure that code is covered fully with well written unit tests. </div><div><br></div><div>One of the nice thing is coverage job. </div><div><br></div><div>In Rally we are running it against every check which allows us to get detailed information about</div><div>coverage before merging patch: </div><div><a href="http://logs.openstack.org/84/175084/1/check/rally-coverage/c61d5e1/cover/">http://logs.openstack.org/84/175084/1/check/rally-coverage/c61d5e1/cover/</a><br></div><div><br></div><div>This helped Rally core team to automate checking that new/changed code is covered by unit tests and we raised unit test coverage from ~78% to almost 91%. </div><div><br></div><div>But it produces few issues: </div><div>1) >9k nitpicking - core reviewers have to put -1 if something is not covered by unit tests</div><div>2) core team scaling issues - core team members spend a lot of time just checking that whole code is covered by unit test and leaving messages like this should be covered by unit test </div><div>3) not friendly community - it's not nice to get on your code -1 from somebody that is asking just to write unit tests</div><div>4) coverage regressions - sometimes we accidentally accept patches that reduce coverage  </div><div><br></div><div>To resolve this issue I improved a bit coverage job in Rally project, and now it compares master vs master + patch coverage. If new coverage is less than master job is marked as -1. </div><div><br></div><div>Here is the patch for job enhancement: </div><div><a href="https://review.openstack.org/#/c/174645/">https://review.openstack.org/#/c/174645/</a></div><div><br></div><div>Here is coverage job in action:</div><div>patch <a href="https://review.openstack.org/#/c/174677/">https://review.openstack.org/#/c/174677/</a></div><div>job message <a href="http://logs.openstack.org/77/174677/4/check/rally-coverage/ba49c90/console.html#_2015-04-17_15_57_17_695">http://logs.openstack.org/77/174677/4/check/rally-coverage/ba49c90/console.html#_2015-04-17_15_57_17_695</a></div><div><br></div><div><br></div><div>Best regards,</div><div>Boris Pavlovic </div></div>