Я следую инструкциям инструкции по установке/установке плагина. Я получил wp scaffold plugin-tests my-plugin
для запуска. Но затем на следующем шаге, когда я пытаюсь запустить bash bin/install-wp-tests.sh wordpress_test root '' localhost latest
, я получаю следующую ошибку:
mysqladmin: connect to server at 'localhost' failed
error: 'Can't connect to MySQL server on 'localhost' (61)'
Check that mysqld is running on localhost and that the port is 3306.
You can check this by doing 'telnet localhost 3306'
Мой локальный сайт Wordpress работает с MAMP (который работает). Я не уверен, что это актуально для установки script, так как я думаю, что он создает временную БД для запуска тестов... Имеет ли значение, использует ли она встроенный OSX mysql или MAMP MySQL?
Здесь вывод из wp --info
$ ./vendor/wp-cli/wp-cli/bin/wp --info
PHP binary: /Applications/MAMP/bin/php/php5.6.10/bin/php
PHP version: 5.6.10
php.ini used: /Applications/MAMP/bin/php/php5.6.10/conf/php.ini
WP-CLI root dir: /Applications/MAMP/htdocs/pipeline/wp-content/plugins/wp-github-pipeline/vendor/wp-cli/wp-cli
WP-CLI global config:
WP-CLI project config:
WP-CLI version: 0.19.2
Обновление 2 Я понял, что изначально MySQL не был установлен... почему я не мог подключиться! Но теперь это так. Я запустил установку script, и это работает...
$ ./vendor/wp-cli/wp-cli/bin/wp db tables
wp_users
wp_usermeta
wp_posts
wp_comments
wp_links
wp_options
wp_postmeta
wp_terms
wp_term_taxonomy
wp_term_relationships
wp_commentmeta
Но когда я запускаю phpunit
, я получаю следующее:
$ phpunit
PHP Warning: mysqli_real_connect(): (HY000/2002): No such file or directory in /private/tmp/wordpress/wp-includes/wp-db.php on line 1452
PHP Stack trace:
PHP 1. {main}() /private/tmp/wordpress-tests-lib/includes/install.php:0
PHP 2. require_once() /private/tmp/wordpress-tests-lib/includes/install.php:21
PHP 3. require_wp_db() /private/tmp/wordpress/wp-settings.php:79
PHP 4. wpdb->__construct() /private/tmp/wordpress/wp-includes/load.php:350
PHP 5. wpdb->db_connect() /private/tmp/wordpress/wp-includes/wp-db.php:649
PHP 6. mysqli_real_connect() /private/tmp/wordpress/wp-includes/wp-db.php:1452
Warning: mysqli_real_connect(): (HY000/2002): No such file or directory in /private/tmp/wordpress/wp-includes/wp-db.php on line 1452
Часть моей проблемы заключается в том, что я не знаю, должен ли wp-cli работать полностью на native (cli) PHP/Mysql, или MAMP PHP/Mysql, или некоторая комбинация обоих.
Обновление 4 Я уверен, что конечная проблема заключается в том, что phpunit необходимо установить в MAMP, но я запускаю его из OSX...
$which phpunit
/usr/bin/phpunit
Упомянуто в этот смысл.
Обновить 6
Оказывается, вы больше не можете устанавливать phpunit, используя грушу. Поэтому я добавил его как зависимость композитора в require-dev, но когда я запустил эту версию, я получаю ту же ошибку!
$ ./vendor/phpunit/phpunit/phpunit
PHP Warning: mysqli_real_connect(): (HY000/1045): Access denied for user 'root'@'localhost' (using password: NO) in /private/tmp/wordpress/wp-includes/wp-db.php on line 1452
PHP Stack trace:
PHP 1. {main}() /private/tmp/wordpress-tests-lib/includes/install.php:0
PHP 2. require_once() /private/tmp/wordpress-tests-lib/includes/install.php:21
PHP 3. require_wp_db() /private/tmp/wordpress/wp-settings.php:79
PHP 4. wpdb->__construct() /private/tmp/wordpress/wp-includes/load.php:350
PHP 5. wpdb->db_connect() /private/tmp/wordpress/wp-includes/wp-db.php:649
PHP 6. mysqli_real_connect() /private/tmp/wordpress/wp-includes/wp-db.php:1452
Warning: mysqli_real_connect(): (HY000/1045): Access denied for user 'root'@'localhost' (using password: NO) in /private/tmp/wordpress/wp-includes/wp-db.php on line 1452
Я даже добавил его к своему пути, чтобы быть уверенным...
$ which phpunit
/Applications/MAMP/htdocs/pipeline/wp-content/plugins/wp-github-pipeline/vendor/phpunit/phpunit/phpunit
Обновление 7
После прочтения комментариев в нижней части этого сообщения в блоге, я вижу, что установка script ссылалась на версию OSX mysqladmin
. Я не уверен, если это имеет значение, но я добавил версию MAMPs в путь и перезапустил установку script. Кажется, все равно установить файлы Wordpress в /tmp/
. Такая же ошибка при запуске phpunit