Createcoverage / coveralls.io version conflicts

Hi,

If you use the createcoverage script (https://pypi.python.org/pypi/createcoverage) so Travis can send the coverage data to coverall.io, be aware it is broken at the moment (since the coveralls python script https://pypi.python.org/pypi/coveralls upgraded its coverage dependency to 3.6).

The consequence is your tests use coverage 3.4 but coveralls uses 4.0, which is not compliant with the 3.4 format, and nothing is uploaded to coverall.io (you will see this misleading error message in your travis log: "Coverage submitted!
Failure to gather coverage: Couldn't read data from '/home/travis/build/plomino/rapido.core/.coverage': CoverageException: Doesn't seem to be a coverage.py data file")

So for now, you need to do the following:

  • in your buildout, pin coverage to 3.6:

    [createcoverage]
    recipe = zc.recipe.egg
    eggs = createcoverage

    [versions]
    coverage = 3.6

  • in your .travis.yml, make sure to install the same version for coveralls:

    script:
    - bin/test
    - bin/createcoverage
    after_success:
    - pip install coverage==3.6 coveralls
    - coveralls

Note: I have made a PR so createcoverage uses 3.6 https://github.com/reinout/createcoverage/pull/1 which will make the pinning in buildout.cfg useless, but the .travis.yml change will still be necessary (well, until createcoverage upgrades to 4.0).

Eric

1 Like

I solved it by doing like so:

after_success:

  • bin/createcoverage
  • bin/python -m coverage.pickle2json
  • bin/coveralls