Платформа тестирования WP-CLI
Быстрые ссылки: Использование | Содействие | Поддерживать
Чтобы использовать среду тестирования WP-CLI, вам необходимо выполнить следующие шаги в пакете, в который вы хотите их добавить:
Добавьте среду тестирования в качестве требования разработки:
composer require --dev wp-cli/wp-cli-tests
Добавьте необходимые тестовые скрипты в файл composer.json
:
"scripts" : {
"behat" : " run-behat-tests " ,
"behat-rerun" : " rerun-behat-tests " ,
"lint" : " run-linter-tests " ,
"phpcs" : " run-phpcs-tests " ,
"phpcbf" : " run-phpcbf-cleanup " ,
"phpunit" : " run-php-unit-tests " ,
"prepare-tests" : " install-package-tests " ,
"test" : [
" @lint " ,
" @phpcs " ,
" @phpunit " ,
" @behat "
]
}
Вы, конечно, можете удалить те, которые вам не нужны.
При желании добавьте измененный тайм-аут процесса в файл composer.json
, чтобы скрипты могли выполняться до тех пор, пока их работа не будет завершена:
"config" : {
"process-timeout" : 1800
},
Тайм-аут выражается в секундах.
При желании добавьте в корень пакета файл behat.yml
со следующим содержимым:
default :
suites :
default :
contexts :
- WP_CLITestsContextFeatureContext
paths :
- features
Это обеспечит работу автоматизированной системы Behat на всех платформах. Это необходимо в Windows.
При желании добавьте файл phpcs.xml.dist
в корень пакета, чтобы включить проверку стиля кода и рекомендаций с помощью PHP_CodeSniffer.
Пример минимального пользовательского набора правил, основанного на настройках по умолчанию, установленных в среде тестирования WP-CLI:
<? xml version = " 1.0 " ?>
< ruleset name = " WP-CLI-PROJECT-NAME " >
< description >Custom ruleset for WP-CLI PROJECT NAME</ description >
<!-- What to scan. -->
< file >.</ file >
<!-- Show progress. -->
< arg value = " p " />
<!-- Strip the filepaths down to the relevant bit. -->
< arg name = " basepath " value = " ./ " />
<!-- Check up to 8 files simultaneously. -->
< arg name = " parallel " value = " 8 " />
<!-- For help understanding the `testVersion` configuration setting:
https://github.com/PHPCompatibility/PHPCompatibility#sniffing-your-code-for-compatibility-with-specific-php-versions -->
< config name = " testVersion " value = " 5.4- " />
<!-- Rules: Include the base ruleset for WP-CLI projects. -->
< rule ref = " WP_CLI_CS " />
</ ruleset >
Все остальные параметры конфигурации PHPCS, конечно же, доступны.
Обновите зависимости композитора и заново создайте автозагрузчик и двоичные папки:
composer update
Теперь вы готовы использовать среду тестирования из своего пакета.
Для управления тестами можно использовать следующие команды:
composer prepare-tests
— настройте базу данных, необходимую для запуска функциональных тестов. Это нужно только один раз.composer test
— Запустите все наборы тестов.composer lint
— запускать только набор тестов для проверки.composer phpcs
— запускайте только набор тестов для анализа кода.composer phpcbf
— запускать только очистку сниффера кода.composer phpunit
— запускайте только набор модульных тестов.composer behat
— запускать только набор функциональных тестов.Чтобы отправить один или несколько аргументов в один из инструментов тестирования, добавьте к аргументам двойное тире. В качестве примера ниже показано, как запустить функциональные тесты только для определенного файла функций:
composer behat -- features/cli-info.feature
Необходимо поставить двойное тире в начале, поскольку в противном случае аргументы были бы отправлены самому Composer, а не инструменту, который Composer выполняет.
Вы можете запустить тесты для конкретной версии WordPress, установив переменную среды WP_VERSION
.
Эта переменная понимает любую числовую версию, а также специальные термины latest
и trunk
.
Примечание. Это относится только к функциональным тестам Behat. Все остальные тесты никогда не загружают WordPress.
Вот как можно запустить тесты на последней основной версии WordPress:
WP_VERSION=trunk composer behat
Вы можете запускать тесты для конкретного двоичного файла WP-CLI вместо использования того, который был построен в папке vendor/bin
вашего проекта.
Это может быть полезно для запуска тестов на конкретной версии WP_CLI Phar.
Для этого вы можете установить переменную среды WP_CLI_BIN_DIR
, чтобы она указывала на папку, содержащую исполняемый двоичный wp
. Примечание: для правильного распознавания двоичный файл должен называться wp
.
В качестве примера ниже показано, как запустить тесты для конкретной загруженной вами версии Phar.
# Prepare the binary you've downloaded into the ~/wp-cli folder first.
mv ~ /wp-cli/wp-cli-1.2.0.phar ~ /wp-cli/wp
chmod +x ~ /wp-cli/wp
WP_CLI_BIN_DIR= ~ /wp-cli composer behat
Основные правила настройки тестовой среды с помощью Travis CI:
composer prepare-tests
необходимо вызывать один раз для каждой среды.linting and sniffing
— это статический анализ, поэтому он не должен зависеть от какой-либо конкретной среды. Это следует сделать только один раз, как отдельный этап, а не для каждой среды.composer behat || composer behat-rerun
заставляет тесты Behat запускаться сначала полностью, а в случае неудачных сценариев второй запуск выполняется только с неудачными сценариями. Обычно это решает периодически возникающие проблемы, такие как тайм-ауты и т.п.Вот базовая настройка того, как вы можете настроить Travis CI для работы с тестовой платформой (выдержка):
install :
- composer install
- composer prepare-tests
script :
- composer phpunit
- composer behat || composer behat-rerun
jobs :
include :
- stage : sniff
script :
- composer lint
- composer phpcs
env : BUILD=sniff
- stage : test
php : 7.2
env : WP_VERSION=latest
- stage : test
php : 7.2
env : WP_VERSION=3.7.11
- stage : test
php : 7.2
env : WP_VERSION=trunk
Вы можете указать тесты на конкретную версию WP-CLI через константу WP_CLI_BIN_DIR
:
WP_CLI_BIN_DIR= ~ /my-custom-wp-cli/bin composer behat
Если вы хотите запустить тесты функций для конкретной версии WordPress, вы можете использовать константу WP_VERSION
:
WP_VERSION=4.2 composer behat
Константа WP_VERSION
также воспринимает latest
и trunk
как допустимые целевые версии.
По умолчанию тесты запускаются в базе данных с именем wp_cli_test
с пользователем также с именем wp_cli_test
и паролем password1
. Это должно быть настроено с помощью команды composer prepare-tests
.
Следующие переменные среды можно установить для переопределения учетных данных базы данных по умолчанию.
WP_CLI_TEST_DBHOST
— это используемый хост, который может включать порт, например «127.0.0.1:33060» (по умолчанию «localhost»)WP_CLI_TEST_DBROOTUSER
— это пользователь, имеющий разрешение на администрирование баз данных и пользователей (по умолчанию «root»).WP_CLI_TEST_DBROOTPASS
— это пароль, который будет использоваться для указанного выше пользователя (по умолчанию пустой пароль).WP_CLI_TEST_DBNAME
— это база данных, в которой выполняются тесты (по умолчанию «wp_cli_test»).WP_CLI_TEST_DBUSER
— это пользователь, под которым выполняются тесты (по умолчанию «wp_cli_test»).WP_CLI_TEST_DBPASS
— это пароль, который будет использоваться для указанного выше пользователя (по умолчанию «пароль1»).WP_CLI_TEST_DBTYPE
— это используемый тип ядра базы данных, т.е. «sqlite» для запуска тестов на SQLite вместо MySQL (по умолчанию «mysql»). Переменные среды можно установить для всего сеанса с помощью следующего синтаксиса: export WP_CLI_TEST_DBNAME=custom_db
.
Их также можно настроить для однократного выполнения, добавив их перед командой Behat: WP_CLI_TEST_DBNAME=custom_db composer behat
.
Мы ценим, что вы проявили инициативу и внесли свой вклад в этот проект.
Вклад не ограничивается только кодом. Мы призываем вас вносить свой вклад так, как это лучше всего соответствует вашим способностям: писать учебные пособия, проводить демо-версии на местных встречах, помогать другим пользователям с вопросами о поддержке или пересматривать нашу документацию.
Для более подробного ознакомления ознакомьтесь с руководством WP-CLI по участию. Этот пакет соответствует этой политике и рекомендациям.
Думаете, вы нашли ошибку? Мы будем рады, если вы поможете нам это исправить.
Прежде чем создавать новую проблему, вам следует выполнить поиск существующих проблем, чтобы узнать, существует ли для нее существующее решение или оно уже исправлено в более новой версии.
После того, как вы немного поискали и обнаружили, что для вашей ошибки не существует открытой или исправленной проблемы, создайте новую проблему. Включите как можно больше деталей и четко объясните шаги для воспроизведения, если это возможно. Дополнительные рекомендации можно найти в нашей документации по отчетам об ошибках.
Хотите добавить новую функцию? Пожалуйста, сначала откройте новый выпуск, чтобы обсудить, подходит ли эта функция для проекта.
Если вы решили выделить время на обработку запроса на включение, следуйте нашим рекомендациям по созданию запроса на включение, чтобы убедиться, что это будет приятным занятием. См. «Настройка» для получения подробной информации о локальной работе с этим пакетом.
Проблемы GitHub не предназначены для общих вопросов поддержки, но есть и другие места, которые вы можете попробовать: https://wp-cli.org/#support