]> git.openstreetmap.org Git - nominatim.git/blobdiff - test/README.md
Merge pull request #834 from mtmail/tests-for-closest-housenumber
[nominatim.git] / test / README.md
index 49fb101dd4ef4b43c3b9dafea7f3035d973d0299..8778265315b9e5a17fdc6fe1710f0587883627ad 100644 (file)
@@ -11,7 +11,7 @@ Prerequisites
 
 To get the prerequisites on a a fresh Ubuntu LTS 16.04 run:
 
-     [sudo] apt-get install python3-dev python3-pip python3-psycopg2 python3-tidylib phpunit
+     [sudo] apt-get install python3-dev python3-pip python3-psycopg2 python3-tidylib phpunit php-cgi
      pip3 install --user behave nose
 
 
@@ -24,6 +24,7 @@ tests for specific PHP functions.
 
 This test directory is sturctured as follows:
 
+```
  -+-   bdd         Functional API tests
   | \
   | +-  steps      Step implementations for test descriptions
@@ -34,7 +35,7 @@ This test directory is sturctured as follows:
   +-   php         PHP unit tests
   +-   scenes      Geometry test data
   +-   testdb      Base data for generating API test database
-
+```
 
 PHP Unit Tests
 ==============
@@ -44,8 +45,8 @@ Very low coverage.
 
 To execute the test suite run
 
-   cd test/php
-   phpunit ../
+    cd test/php
+    phpunit ../
 
 It will read phpunit.xml which points to the library, test path, bootstrap
 strip and set other parameters.
@@ -98,9 +99,13 @@ be documented.
 
 These tests are meant to test the different API endpoints and their parameters.
 They require a preimported test database, which consists of the import of a
-planet extract. The polygons defining the extract can be found in the test/testdb
+planet extract. A precompiled PBF with the necessary data can be downloaded from
+http://www.nominatim.org/data/test/nominatim-api-testdata.pbf
+
+The polygons defining the extract can be found in the test/testdb
 directory. There is also a reduced set of wikipedia data for this extract,
-which you need to import as well.
+which you need to import as well. For Tiger tests the data of South Dakota
+is required. Get the Tiger files `46*`.
 
 The official test dataset is derived from the 160725 planet. Newer
 planets are likely to work as well but you may see isolated test
@@ -115,6 +120,23 @@ Before importing make sure to add the following to your local settings:
     @define('CONST_Database_DSN', 'pgsql://@/test_api_nominatim');
     @define('CONST_Wikipedia_Data_Path', CONST_BasePath.'/test/testdb');
 
+#### Code Coverage
+
+The API tests also support code coverage tests. You need to install
+[PHP_CodeCoverage](https://github.com/sebastianbergmann/php-code-coverage).
+On Debian/Ubuntu run:
+
+    apt-get install php-codecoverage php-xdebug
+
+The run the API tests as follows:
+
+    behave api -DPHPCOV=<coverage output dir>
+
+The output directory must be an absolute path. To generate reports, you can use
+the [phpcov](https://github.com/sebastianbergmann/phpcov) tool:
+
+    phpcov merge --html=<report output dir> <coverage output dir>
+
 ### Indexing Tests (`test/bdd/db`)
 
 These tests check the import and update of the Nominatim database. They do not