TL; DR: Кажется, я не мог заставить его работать, потому что это была установка WordPress, поэтому я установил PHPUnit через wget
и использовал WP-CLI для подстановки тестов темы, а затемработал как шарм.
Сначала я установил PHPUnit из терминала внутри моего каталога тем:
wget -O phpunit https://phar.phpunit.de/phpunit-7.phar
chmod +x phpunit
Далее я установил WP-CLI:
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp
Далее настройте набор тестов:
wp scaffold theme-tests your-theme-slug
Также убедитесь, что у вас установлена svn
.
В моем случае (и я тоже кое-что упомянул) япришлось удалить /tmp/wordpress
и /tmp/wordpress-tests-lib
и повторно выполнить предыдущую команду дважды, потому что скрипт как-то не загружал все.
Обратите внимание, что у вас будет отдельная настройка WordPress в /tmp/wordpress
. В моей основной настройке WordPress я использую библиотеку WPKit, которая хранится в корне WordPress около wp-content
, поэтому мне пришлось скопировать ее в /tmp/wordpress
, в противном случае мои тесты PHPUnit не смогли найти файлы WPKit, которые были включены в классы, которые я должен был проверить.
Поэтому, когда вы запускаете wp scaffold
, он создает каталог bin
в корне вашей темы. Чтобы установить набор тестов, выполните следующую команду из корня темы:
bin/install-wp-tests.sh <test-database-name> <user> <password> <host> <wordpress-version>
В моем случае это выглядело так:
bin/install-wp-tests.sh wp_test root '' localhost latest
Обязательно используйте empty database, потому что запуск PHPUnit очищает базу данных каждый раз, поэтому вы можете потерять ваши данные.
После всех этих действий просто запустите PHPUnit, и все будет в порядке:
./phpunit
Он запускает тесты вyour-theme/tests
каталог. По умолчанию он игнорирует файл теста по умолчанию, поэтому используйте его для создания собственных простых тестов, чтобы проверить, все ли работает.
Whew.
Источники: