# Setup Test Environment To test changes and contribute to Nominatim you should be able to run the test suite(s). For many usecases it's enough to create a Vagrant virtual machine (see `VAGRANT.md`), import one small country into the database. ## Prerequisites Nominatim supports a range of PHP versions and PHPUnit versions also move fast. We try to test against the newest stable PHP release and PHPUnit version even though we expect many Nominatim users will install older version on their production servers. #### Ubuntu 20 sudo apt-get install -y phpunit php-codesniffer php-cgi pip3 install --user behave nose #### Ubuntu 18 pip3 install --user behave nose sudo apt-get install -y composer php-cgi php-cli php-mbstring php-xml zip unzip composer global require "squizlabs/php_codesniffer=*" sudo ln -s ~/.config/composer/vendor/bin/phpcs /usr/bin/ composer global require "phpunit/phpunit=8.*" sudo ln -s ~/.config/composer/vendor/bin/phpunit /usr/bin/ #### CentOS 7 or 8 sudo dnf install -y php-dom php-mbstring pip3 install --user behave nose composer global require "squizlabs/php_codesniffer=*" sudo ln -s ~/.config/composer/vendor/bin/phpcs /usr/bin/ composer global require "phpunit/phpunit=^7" sudo ln -s ~/.config/composer/vendor/bin/phpunit /usr/bin/ ## Run tests, code linter, code coverage See `README.md` in `test` subdirectory.