brick / geo

GIS geometry library for PHP
MIT License
221 stars 31 forks source link

Exclude non relevant files from code coverage #7

Closed cevou closed 9 years ago

coveralls commented 9 years ago

Coverage Status

Coverage remained the same when pulling 9bede841f94a95b3ae17a8e3e3c060333981841f on cevou:coverage into ebba501a47e67465699c7b5a4798917fb2526b95 on brick:master.

BenMorel commented 9 years ago

Isn't it better to just whitelist src?

BenMorel commented 9 years ago

<whitelist> does work, along with processUncoveredFilesFromWhitelist to ensure that all files are taken into account, even the ones we wouldn't have written tests for yet.

But now the problem is, Coveralls reports do not aggregate all jobs, and show poor coverage (~30%) because each job targets different code parts.

If you know a way to make it report the correct coverage across all jobs, let me know!

cevou commented 9 years ago

You might want to remove the repo from coveralls and add it again. I haven't tried it, but I guess this is the only way to do it.

BenMorel commented 9 years ago

What makes you think this?

cevou commented 9 years ago

I guess all data is removed if you remove the repo from coveralls. It you enable it again you should be able to start over. Its stange anyway, that coveralls keeps files which aren't part of the code coverage scope anymore.

BenMorel commented 9 years ago

I haven't seen files not part of the code coverage, can you point me to them? My current issue is that each job (MYSQL, PGSQL, etc.) covers different parts of the code, and as far as I can see there is no way to get the aggregate coverage across all jobs in Coveralls...

cevou commented 9 years ago

Sorry, I had a look at an old report, which still included the files that are now excluded. There is a section in the coveralls PHP documentation (https://github.com/satooshi/php-coveralls#coverallsyml) which descripes how to merge multiple coverage report files, but this only works, if the job is run on the same machine. The .travis.yml could be changed in a way, that all tests for all engines are run on one machine. This could be achived by calling the phpunit script multiple times in the script section with different env variables.

BenMorel commented 9 years ago

Thanks for the pointer, indeed I would need to merge tests for all 4 engines in a single job, so we would only have 3 jobs left : PHP 5.5, PHP 5.6, HHVM.

It might make it harder to spot issues when a test fails on a single engine, though. I'm going to think twice about it before following that route.

It's unfortunate that (as far as I can see) Coveralls does not have a built-in coverage report merge tool to aggregate all the reports received by the different jobs!