X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/c8d45972bbda2cdc60013a074bf6f25beea29394..20d0fb35ce9d4d7c006a0e77dcf25edc2e8509b3:/docs/develop/Testing.md?ds=sidebyside diff --git a/docs/develop/Testing.md b/docs/develop/Testing.md index c220f4e4..12673d40 100644 --- a/docs/develop/Testing.md +++ b/docs/develop/Testing.md @@ -8,7 +8,7 @@ the tests, see the [Development setup chapter](Development-Environment.md). There are two kind of tests in this test suite. There are functional tests which test the API interface using a BDD test framework and there are unit -tests for specific PHP functions. +tests for the Python code. This test directory is structured as follows: @@ -20,28 +20,11 @@ This test directory is structured as follows: | +- db Tests for internal data processing on import and update | +- api Tests for API endpoints (search, reverse, etc.) | - +- php PHP unit tests +- python Python unit tests +- testdb Base data for generating API test database +- testdata Additional test data used by unit tests ``` -## PHP Unit Tests (`test/php`) - -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 - - cd test/php - UNIT_TEST_DSN='pgsql:dbname=nominatim_unit_tests' phpunit ../ - -It will read phpunit.xml which points to the library, test path, bootstrap -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 @@ -89,8 +72,6 @@ The tests can be configured with a set of environment variables (`behave -D key= * `DB_PORT` - (optional) port of database on host * `DB_USER` - (optional) username of database login * `DB_PASS` - (optional) password for database login - * `SERVER_MODULE_PATH` - (optional) path on the Postgres server to Nominatim - module shared library file (only needed for legacy tokenizer) * `REMOVE_TEMPLATE` - if true, the template and API database will not be reused during the next run. Reusing the base templates speeds up tests considerably but might lead to outdated errors @@ -118,7 +99,7 @@ and compromises the following data: * extract of Autauga country, Alabama, US (for tests against Tiger data) * additional data from `test/testdb/additional_api_test.data.osm` -API tests should only be testing the functionality of the website PHP code. +API tests should only be testing the functionality of the website frontend code. Most tests should be formulated as BDD DB creation tests (see below) instead. ### DB Creation Tests (`test/bdd/db`)