You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
58 lines
1.1 KiB
Markdown
58 lines
1.1 KiB
Markdown
Testing
|
|
=======
|
|
Use `pytest` to run the tests in [the tests directory](dinglehopper/tests):
|
|
```bash
|
|
virtualenv -p /usr/bin/python3 venv
|
|
. venv/bin/activate
|
|
pip install -r requirements.txt
|
|
pip install -r requirements-dev.txt
|
|
pytest
|
|
```
|
|
|
|
## Test running examples
|
|
|
|
Only unit tests:
|
|
```bash
|
|
pytest -m "not integration"
|
|
```
|
|
|
|
Only integration tests:
|
|
```bash
|
|
pytest -m integration
|
|
```
|
|
|
|
All tests:
|
|
```bash
|
|
pytest
|
|
```
|
|
|
|
All tests with code coverage:
|
|
```bash
|
|
pytest --cov=dinglehopper --cov-report=html
|
|
```
|
|
|
|
Static code analysis:
|
|
```bash
|
|
pytest -k "not test" --mypy
|
|
pytest -k "not test" --ruff
|
|
```
|
|
|
|
# How to use pre-commit
|
|
|
|
This project optionally uses [pre-commit](https://pre-commit.com) to check commits. To use it:
|
|
|
|
- Install pre-commit, e.g. `pip install -r requirements-dev.txt`
|
|
- Install the repo-local git hooks: `pre-commit install`
|
|
|
|
|
|
# Releasing a new version
|
|
|
|
- Update `ocrd-tool.json`
|
|
- `git commit`
|
|
- `git tag vx.y.z`
|
|
- `git push && git push --tags`
|
|
- The GitHub Actions workflow `release` will now create
|
|
a. a new release on GitHub and
|
|
b. a new release on PyPI
|
|
- Currently requires a review for PYPI?
|