add documentation for new pytest tests

This commit is contained in:
Sarah Hoffmann
2021-01-15 15:18:45 +01:00
parent f1f0032758
commit 438ed431dd
2 changed files with 18 additions and 6 deletions

View File

@@ -26,12 +26,14 @@ following packages should get you started:
## Prerequisites for testing and documentation ## Prerequisites for testing and documentation
The Nominatim test suite consists of behavioural tests (using behave) and The Nominatim test suite consists of behavioural tests (using behave) and
unit tests (using PHPUnit). It has the following additional requirements: unit tests (using PHPUnit for PHP code and pytest for Python code).
It has the following additional requirements:
* [behave test framework](https://behave.readthedocs.io) >= 1.2.5 * [behave test framework](https://behave.readthedocs.io) >= 1.2.5
* [phpunit](https://phpunit.de) >= 7.3 * [phpunit](https://phpunit.de) >= 7.3
* [PHP CodeSniffer](https://github.com/squizlabs/PHP_CodeSniffer) * [PHP CodeSniffer](https://github.com/squizlabs/PHP_CodeSniffer)
* [Pylint](https://pylint.org/) * [Pylint](https://pylint.org/) (2.6.0 is used for the CI)
* [pytest](https://pytest.org)
The documentation is built with mkdocs: The documentation is built with mkdocs:
@@ -49,7 +51,7 @@ To install all necessary packages run:
sudo apt install php-cgi phpunit php-codesniffer \ sudo apt install php-cgi phpunit php-codesniffer \
python3-pip python3-setuptools python3-dev pylint python3-pip python3-setuptools python3-dev pylint
pip3 install --user behave mkdocs pip3 install --user behave mkdocs pytest
``` ```
The `mkdocs` executable will be located in `.local/bin`. You may have to add The `mkdocs` executable will be located in `.local/bin`. You may have to add

View File

@@ -21,14 +21,15 @@ This test directory is sturctured as follows:
| +- api Tests for API endpoints (search, reverse, etc.) | +- api Tests for API endpoints (search, reverse, etc.)
| |
+- php PHP unit tests +- php PHP unit tests
+- python Python unit tests
+- scenes Geometry test data +- scenes Geometry test data
+- testdb Base data for generating API test database +- testdb Base data for generating API test database
``` ```
## PHP Unit Tests (`test/php`) ## PHP Unit Tests (`test/php`)
Unit tests can be found in the php/ directory. They test selected php functions. Unit tests for PHP code can be found in the `php/` directory. They test selected
Very low coverage. PHP functions. Very low coverage.
To execute the test suite run To execute the test suite run
@@ -36,11 +37,20 @@ To execute the test suite run
UNIT_TEST_DSN='pgsql:dbname=nominatim_unit_tests' phpunit ../ UNIT_TEST_DSN='pgsql:dbname=nominatim_unit_tests' phpunit ../
It will read phpunit.xml which points to the library, test path, bootstrap It will read phpunit.xml which points to the library, test path, bootstrap
strip and set other parameters. strip and sets other parameters.
It will use (and destroy) a local database 'nominatim_unit_tests'. You can set It will use (and destroy) a local database 'nominatim_unit_tests'. You can set
a different connection string with e.g. UNIT_TEST_DSN='pgsql:dbname=foo_unit_tests'. a different connection string with e.g. UNIT_TEST_DSN='pgsql:dbname=foo_unit_tests'.
## Python Unit Tests (`test/python`)
Unit tests for Python code can be found in the `python/` directory. The goal is
to have complete coverage of the Python library in `nominatim`.
To execute the tests run
pytest test/python
## BDD Functional Tests (`test/bdd`) ## BDD Functional Tests (`test/bdd`)
Functional tests are written as BDD instructions. For more information on Functional tests are written as BDD instructions. For more information on