1. 08 Jan, 2019 1 commit
    • Will Price's avatar
      [travis] Record code coverage and display on README (#703) · 98ca260b
      Will Price authored
      Test installed version of package
      
      To test against the installed version of the package (which is
      preferably since this can catch installation file inclusion bugs) we
      have to deal with quirks of coverage.py. By default the ecosystem is
      set up to do development coverage tests (e.g. in src, or by using `pip
      install -e .` or `python setup.py develop`).
      
      We want to test against the version installed, to do this we have to
      find the install path which we'll then pass to the `--cov` arg added by
      `pytest-cov`. To do this, we have to cd out of the current folder, and
      import the installed version and get it's install path (if we don't cd
      out, then we end up getting the existing directory in the cwd since by
      default cwd is on `sys.path`)
      
      Once we have the install path, we pass that to the `--cov` of pytest,
      however we also want to rewrite the paths for codecov to pick them up on
      the website, if they don't have to code coverage with local paths, they
      don't register is properly.
      
      In order to that, we have a .coveragerc file that has the contents:
      
      ```
      [paths]
      source =
          torchvision
          /**/site-packages/torchvision
      ```
      
      This tells codecov to treat all paths with those prefixes as the same,
      so anything like
      `/home/travis/miniconda/envs/test-environment/lib/python2.7/site-packages/torchvision/models/__init__.py`
      would be treated the same as
      `torchvision/models/__init__.py` after running the coverage combination
      command. The first path seems to be special, in that all subsequent
      paths are rewritten to that one.
      
      Once we collect coverage, we then run `coverage run` to rewrite the
      installation paths in the coverage file, `.coverage`, to those expected
      by codecov.
      
      Phew. And that's it.
      
      N.B: Whilst adding test/__init__.py does solve the issue, it also results in
      PWD being added to the path, and then we'll test the development version
      of the package, and not the installed version (see
      https://docs.pytest.org/en/latest/goodpractices.html#tests-as-part-of-application-code)
      98ca260b
  2. 27 Mar, 2018 1 commit
  3. 31 Jan, 2018 1 commit
  4. 23 Sep, 2017 1 commit
  5. 27 Feb, 2017 2 commits