]> git.openstreetmap.org Git - nominatim.git/blob - docs/develop/Setup.md
Merge pull request #1917 from lonvia/docs-rank-levels
[nominatim.git] / docs / develop / Setup.md
1 # Setup Test Environment
2
3 To test changes and contribute to Nominatim you should be able to run
4 the test suite(s). For many usecases it's enough to create a Vagrant
5 virtual machine (see `VAGRANT.md`), import one small country into the
6 database.
7
8 ## Prerequisites
9
10 Nominatim supports a range of PHP versions and PHPUnit versions also
11 move fast. We try to test against the newest stable PHP release and
12 PHPUnit version even though we expect many Nominatim users will install
13 older version on their production servers.
14
15  * Python 3 (https://www.python.org/)
16  * behave test framework >= 1.2.5 (https://github.com/behave/behave)
17  * nose (https://nose.readthedocs.org)
18  * pytidylib (http://countergram.com/open-source/pytidylib)
19  * psycopg2 (http://initd.org/psycopg/)
20
21 #### Ubuntu 20
22
23     sudo apt-get install -y phpunit php-codesniffer php-cgi
24     pip3 install --user behave nose
25
26 #### Ubuntu 18
27
28     pip3 install --user behave nose
29
30     sudo apt-get install -y composer php-cgi php-cli php-mbstring php-xml zip unzip
31
32     composer global require "squizlabs/php_codesniffer=*"
33     sudo ln -s ~/.config/composer/vendor/bin/phpcs /usr/bin/
34
35     composer global require "phpunit/phpunit=8.*"
36     sudo ln -s ~/.config/composer/vendor/bin/phpunit /usr/bin/
37
38
39 #### CentOS 7 or 8
40
41     sudo dnf install -y php-dom php-mbstring
42     pip3 install --user behave nose
43
44     composer global require "squizlabs/php_codesniffer=*"
45     sudo ln -s ~/.config/composer/vendor/bin/phpcs /usr/bin/
46
47     composer global require "phpunit/phpunit=^7"
48     sudo ln -s ~/.config/composer/vendor/bin/phpunit /usr/bin/
49
50 ## Run tests, code linter, code coverage
51
52 See `README.md` in `test` subdirectory.