From: Sarah Hoffmann Date: Fri, 15 Jan 2021 14:18:45 +0000 (+0100) Subject: add documentation for new pytest tests X-Git-Tag: v3.7.0~55^2~2 X-Git-Url: https://git.openstreetmap.org./nominatim.git/commitdiff_plain/438ed431ddf59b6f2a17880b43a7450ef184250b add documentation for new pytest tests --- diff --git a/docs/develop/Development-Environment.md b/docs/develop/Development-Environment.md index 75324e71..43598b9a 100644 --- a/docs/develop/Development-Environment.md +++ b/docs/develop/Development-Environment.md @@ -26,12 +26,14 @@ following packages should get you started: ## Prerequisites for testing and documentation 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 * [phpunit](https://phpunit.de) >= 7.3 * [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: @@ -49,7 +51,7 @@ To install all necessary packages run: sudo apt install php-cgi phpunit php-codesniffer \ 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 diff --git a/docs/develop/Testing.md b/docs/develop/Testing.md index 7990bf9e..6a2becee 100644 --- a/docs/develop/Testing.md +++ b/docs/develop/Testing.md @@ -21,14 +21,15 @@ This test directory is sturctured as follows: | +- api Tests for API endpoints (search, reverse, etc.) | +- php PHP unit tests + +- python Python unit tests +- scenes Geometry test data +- testdb Base data for generating API test database ``` ## PHP Unit Tests (`test/php`) -Unit tests can be found in the php/ directory. They test selected php functions. -Very low coverage. +Unit tests for PHP code can be found in the `php/` directory. They test selected +PHP functions. Very low coverage. 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 ../ 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 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`) Functional tests are written as BDD instructions. For more information on