Intereting Posts
Как настроить WP CLI на машине разработки Windows с AMPPS? не удалось открыть поток: нет такого файла или каталога Разрешить пользователю создавать экземпляры настраиваемого поля Раздел комментариев WordPress на страницах, которые не отображаются Jetpack «Подключиться к WordPress», обслуживающий небезопасный контент под HTTPS Синхронизировать обновления с существующими подписками Как обрабатывать эту структуру URL. Продолжайте получать "страница не найдена" С WordPress Importer, почему я не могу импортировать метатеги post, содержащие многомерный массив, в котором значения (-ы) этого массива содержат разрывы строк? Я хочу пройти через Woocommerce Product Catogories и показать их в выпадающем меню Многостраничное доменное отображение WordPress с различными IP-адресами Как я могу выделить элемент меню панели верхнего уровня, созданный для пользовательской таксономии? Использование элемента списка пожеланий и мне нужно получить доступ к статусу пользователя Различные шаблоны для категорий родителей и детей / таксономии wp localize script делает переменную глобальную, как ее решить? Сортировка сообщений несколькими настраиваемыми полями в определенном порядке

Установка и загрузка дополнительных плагинов при выполнении модульных тестов

Я хочу написать модульные тесты для плагина. Я использовал WP-CLI для подстановки тестового экземпляра WordPress и может успешно запускать тесты.

Плагин, над которым я пишу модульные тесты, является плагином для сайтов, а не автономным плагином, предназначенным для репозитория wordpress.org. Являясь плагином для конкретного сайта, некоторые функции используют функции, предоставляемые другими плагинами, например, дополнительные пользовательские поля.

Вопрос : Как установить и загрузить дополнительные плагины на сайте подкладок WP-CLI при тестировании плагина на вашем сайте?

Я посмотрел файл bin/install-wp-test.sh надеясь, что могу добавить дополнительные команды wp-cli для установки и активации необходимых плагинов, но этот сценарий не использует wp-cli для создания тестового экземпляра WordPress.

Я также попытался обновить функции _manually_load_plugin в _manually_load_plugin tests/bootstrap.php со следующим кодом, но это не повлияло.

 /** * PHPUnit bootstrap file * * @package Site Specific Plugin */ $_tests_dir = getenv( 'WP_TESTS_DIR' ); if ( ! $_tests_dir ) { $_tests_dir = '/tmp/wordpress-tests-lib'; } // Give access to tests_add_filter() function. require_once $_tests_dir . '/includes/functions.php'; /** * Manually load the plugin being tested. */ function _manually_load_plugin() { require dirname( dirname( __FILE__ ) ) . '/battingforchange.php'; // Update array with plugins to include ... $plugins_to_active = array( 'advanced-custom-fields-pro/acf.php' ); update_option( 'active_plugins', $plugins_to_active ); } tests_add_filter( 'muplugins_loaded', '_manually_load_plugin' ); // Start up the WP testing environment. require $_tests_dir . '/includes/bootstrap.php'; 

Solutions Collecting From Web of "Установка и загрузка дополнительных плагинов при выполнении модульных тестов"

То, что вы пытаетесь сделать, это не модульное тестирование, а интеграционное тестирование, и поскольку интеграция обычно требует некоторой инициализации, которая будет специфичной для соответствующего плагина, трудно дать общий ответ, который является более чем очевидным «включить файл плагина»,

Идея модульного тестирования состоит в том, чтобы проверить, что ваши API-интерфейсы выполняют то, что они должны делать, и базовое предположение должно заключаться в том, что внешние API-интерфейсы работают правильно, иначе просто не будет предела количеству тестов, которые вам придется писать.

Как только вы предполагаете, что внешние API работают правильно, не имеет никакого значения, если вы на самом деле называете их или просто записываете функцию с тем же именем, которая просто имитирует их поведение.

В качестве примера к идее. В плагине я пишу, есть несколько параметров, которые управляют тем, с каким WP_Query вызывается. Чтобы проверить, что я просто проверяю результирующий массив аргументов, не беспокоясь о вызове WP_Query .

Среда тестирования, созданная WP-CLI, предназначена для модульного тестирования одного плагина, а не для тестирования интеграции, как указал Марк Каплун .

Однако, следуя этому сообщению в разделе Тестирование тегов и плагинов в WordPress, вы можете загружать темы и дополнительные плагины для более широких тестов интеграции.