Add pytest-cov, requirements-dev, pyproject.toml
When tests finish, a report should be printed that shows the code coverage of timm. This should give us a better idea where we should work on test coverage. I have tested this locally (on a subset of tests) and it worked. Since the number of test dependencies was getting quite high, I created a requirements-dev.txt and moved them there. GH action and CONTRIBUTING.md are adjusted accordingly. Furthermore, instead of extending the pytest invocation, I created a pyproject.toml and added the coverage options there. For completeness, I also added the black settings that come closest to the style of timm. LMK if this is not desired. For now, the coverage is only reported but not enforced. I.e. when a PR is created that adds uncovered lines, CI will still succeed. We could think about adding codecov or something like that, but it can be annoying sometimes and the service was flaky for me in the past.pull/1690/head
parent
a5b01ec04e
commit
cf6f6adf6e
|
@ -30,7 +30,7 @@ jobs:
|
||||||
- name: Install testing dependencies
|
- name: Install testing dependencies
|
||||||
run: |
|
run: |
|
||||||
python -m pip install --upgrade pip
|
python -m pip install --upgrade pip
|
||||||
pip install pytest pytest-timeout pytest-xdist pytest-forked expecttest
|
pip install -r requirements-dev.txt
|
||||||
- name: Install torch on mac
|
- name: Install torch on mac
|
||||||
if: startsWith(matrix.os, 'macOS')
|
if: startsWith(matrix.os, 'macOS')
|
||||||
run: pip install --no-cache-dir torch==${{ matrix.torch }} torchvision==${{ matrix.torchvision }}
|
run: pip install --no-cache-dir torch==${{ matrix.torch }} torchvision==${{ matrix.torchvision }}
|
||||||
|
|
|
@ -73,18 +73,13 @@ There are a LOT of gaps in current documentation relative to the functionality i
|
||||||
|
|
||||||
# Installation
|
# Installation
|
||||||
|
|
||||||
Create a Python virtual environment using Python 3.10. Inside the environment, install the following test dependencies:
|
Create a Python virtual environment using Python 3.10. Inside the environment, install torch` and `torchvision` using the instructions matching your system as listed on the [PyTorch website](https://pytorch.org/).
|
||||||
|
|
||||||
```
|
|
||||||
python -m pip install pytest pytest-timeout pytest-xdist pytest-forked expecttest
|
|
||||||
```
|
|
||||||
|
|
||||||
Install `torch` and `torchvision` using the instructions matching your system as listed on the [PyTorch website](https://pytorch.org/).
|
|
||||||
|
|
||||||
Then install the remaining dependencies:
|
Then install the remaining dependencies:
|
||||||
|
|
||||||
```
|
```
|
||||||
python -m pip install -r requirements.txt
|
python -m pip install -r requirements.txt
|
||||||
|
python -m pip install -r requirements-dev.txt # for testing
|
||||||
python -m pip install --no-cache-dir git+https://github.com/mapillary/inplace_abn.git
|
python -m pip install --no-cache-dir git+https://github.com/mapillary/inplace_abn.git
|
||||||
python -m pip install -e .
|
python -m pip install -e .
|
||||||
```
|
```
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
[tool.pytest.ini_options]
|
||||||
|
addopts = "--cov=timm --cov-report=term-missing"
|
||||||
|
|
||||||
|
[tool.coverage.run]
|
||||||
|
omit = [
|
||||||
|
"tests/test_*.py",
|
||||||
|
]
|
||||||
|
|
||||||
|
[tool.black]
|
||||||
|
line-length = 120
|
||||||
|
target-version = ['py37', 'py38', 'py39', 'py310', 'py311']
|
||||||
|
skip-string-normalization = true
|
|
@ -0,0 +1,6 @@
|
||||||
|
pytest
|
||||||
|
pytest-timeout
|
||||||
|
pytest-xdist
|
||||||
|
pytest-forked
|
||||||
|
expecttest
|
||||||
|
pytest-cov
|
Loading…
Reference in New Issue