Intereting Posts
Автоматический вход в систему с использованием Active Directory и проверки подлинности Windows Как подсчитать значения метаданных для всех записей в базе данных Не удается войти в WordPress, несмотря на изменение пароля на то, что известно непосредственно в MySQL или с помощью функции «Сброс пароля по электронной почте» Как добавить div для вывода галереи по умолчанию Какое самое раннее действие, которое вы можете назвать? Как скачать WordPress Audio Attachments Какая модификация для входа только в определенную роль? Как изменить структуру permalink без получения 404? запрос user display_name не удалось выполнить в пользовательском запросе mysql foreach Отображение выдержки после использования wpdb-запроса Как я могу позволить пользователям получать доступ к функциям плагина на основе ролей? Более гибкое управление боковой панелью и виджетами Интеграция Карт Google с пользовательским маркером и зависанием? запросы на пользовательские метаполя и сортировка их по обычным мета Как отредактировать опубликованные «by» и «on» в сообщении meta

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

Я хочу написать модульные тесты для плагина. Я использовал 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, вы можете загружать темы и дополнительные плагины для более широких тестов интеграции.