Независимо от того, предлагаете ли вы бесплатные или премиальные темы, тестирование должно быть важной частью процесса разработки. Заранее планируя, вы можете создать среду разработки, которая предотвращает некоторые ошибки по замыслу и которая помогает предотвратить другие. Цель этой статьи состоит в том, чтобы поделиться некоторыми из трюков я использую лично во время и после разработки для достижения без ошибок продукта.
Эта статья разделена на три отдельных раздела:
- Настройка
- Этап развития,
- Окончательное тестирование.
Это должно дать вам хороший обзор того, что вы можете сделать в течение цикла разработки. Я приглашаю всех куранты со своими советами в комментариях. Мне было бы интересно услышать ваши советы по тестированию WordPress темы!
Дальнейшее чтение на SmashingMag:
- Сообщество WordPress предлагает советы для начинающих
- Как внести свой вклад в WordPress
- Расписание событий с помощью WordPress Cron
- WordPress Тема Настройка
Настройка
Правильное настройка среды может значительно предотвратить ошибки и помочь вам найти их легче. Для меня все начинается с управления версиями.
Настройка WordPress
Вы можете сделать около миллиона вещей при настройке WordPress, чтобы убедиться, что вы делаете как можно меньше ошибок, как это возможно. Я всегда делаю несколько вещей:
- Использование сети (WordPress Multisite). Хотя не сильно отличается, разработка для установки сети действительно представляет некоторые различия в методологии (особенно с плагинами). Потому что я использую одну сеть для тем которые я делаю, он все еще полезн, и я могу убеждаться что темы работают правильно на установках сети также.
-
Настраиваемая префикс таблицы. Установка приставки специальной таблицы помогает двумя способами. Во-первых, это гарантирует, что вы не жесткий код базы данных запросов. Во-вторых, это дает вам дополнительный уровень безопасности. Всем известно, что по
wp_
умолчанию, так что выбор в качестве239Jd_23eKSmCM892_Vuhwedp
префикса, как добавление мини-пароль в базу данных. -
Включить информацию об отладке. Я обнаружил, что многие неаккуратные разработчики оставляют неопределенные переменные и другие подобные неприятности повсюду. PHP не может жаловаться на них по умолчанию, но они раздражают и может привести к другим проблемам в будущем. Чтобы убедиться, что вы случайно не вызвать уведомления, просто убедитесь, что
WP_DEBUG
установленtrue
вwp-config.php
. -
Отключить WordPress сценарий concatenation. Более неясной особенностью WordPress является возможность отключить конкатацию скрипта. Иногда, когда выяснить, как WordPress делает вещи, вы хотите посмотреть на некоторые из встроенных файлов JavaScript. Если вы
define('CONCATENATE_SCRIPTS', false);
установитеwp-config.php
файл, ваши скрипты будут втягиваться отдельно. Не забудьте пополнеть его для производственных сред! -
Расширенный анализ запросов. Если вы установите
define('SAVEQUERIES', true);
константуwp-config.php
в, WordPress сохранит все запросы, выполняемые в переменной. Вы сможете получить к нему доступ, распечатав$wpdb->queries
переменную. -
Отключить мусор. Обычно отличная функция, мусор просто получает на пути, когда вы разрабатываете и создания и удаляя страниц и сообщений. Отключить мусор, установив
define('EMPTY_TRASH_DAYS', 0 );
вwp-config.php
. - Тестовые посты. С места в карьер, я обычно импортировать тестовое содержание из«Тематическая группа испытаний». Этот набор тестов содержит обычные сообщения, сообщения без заголовков, сообщения без содержания, сообщения с и без признакам изображения, липкие сообщения, должности с нагрузкой категорий и так далее. Это поможет вам проверить бахромой случаях особенно хорошо, что имеет решающее значение для всех тем.
Я также хотел бы создать 16 пользователей с различными ролями. К сожалению, у меня нет сценария для этого, но писать один не будет так сложно. Можно создать массив в файле и просто перейти на wp_insert_user()
функцию в цикле. Что-то вроде этого:
$users[0] = array(
'first_name' => 'Daniel',
'last_name' => 'Pataki',
'user_login' => 'danielpataki',
'user_pass' => 'mysupersecretpass',
'user_email' => 'mysupermail@mymail.com',
'display_name' => 'Daniel',
'description' => 'Guitar-wielding Web developer',
'role' => 'administrator'
)
$users[1] = array(
'first_name' => 'Viki',
'last_name' => 'Makra',
'user_login' => 'viki',
'user_pass' => 'hersupersecretpass',
'user_email' => 'hersupermail@mymail.com',
'display_name' => 'Viki',
'description' => 'Front-end developer and awesome admin handler',
'role' => 'editor'
)
foreach( $users as $user ){
wp_insert_user( $user );
}
Я на самом деле есть набор тестовых писем для каждой учетной записи пользователя я создаю, и я добавляю аватары для каждого из них на Gravatar. Вы можете захватить кучу интересных изображений, ища аватары на ThemeForest.
Вы также можете использовать плагин, такой как пользователь Photo или простые локальные аватары, чтобы добавить фотографии локально.
Управление версиями
Управление версиями одна из самых лучших вещей, чтобы прийти вместе с беконом. Предпочитаете ли вы Git, SVN, Mercurial или другую систему, вы сможете откатиться к различным версиям и всегда иметь резервную часть вашей работы.
Управление версиями, предположительно, наиболее полезно при совместной работе. Хотя это правда, я обнаружил, что порядок он приносит в вашей практике кодирования так же ценно. Я настоятельно рекомендую читать версия управления с подрывной и / или Pro Git. Они оба имеют множество практических данных о управлении версиями, как общих, так и конкретных.
Во время разработки
Вот несколько полезных советов и приемов, чтобы следовать во время развития темы.
«Я сделаю это позже.»
Как опытный кодер, я обычно знаю свой путь вокруг кодирования задачи, когда один возникает, но подталкивая себя к концу таких задач трудно. Если я реализую инструмент поиска на основе карты, то самые большие задачи, чтобы убедиться, что форма работает и что, когда пользователь выполняет поиск, он крючки в Google и результаты возвращаются и отображаются на карте и так далее. Как только они будут сделаны, то убедившись, что форма выглядит хорошо, что администраторы могут определить тип карты для пользователя и так далее являются незначительными вопросами.
Ранее я хотел бы работать через основные функции, а затем вернуться и коснуться деталей. Единственная проблема с этим является то, что это худшая практика когда-либо. Вы забываете вещи; ваш код становится грязным; то вы не можете поддерживать его должным образом; и это становится гигантской головной болью.
Моя рекомендация состоит в том, чтобы либо разработать функцию или нет. Убедитесь, что вы добавили все запланированные функции и что они не просто любопытное работы или ошибки, которые «не большие проблемы, потому что они могут быть легко исправлены позже».
Если ваш код очень модульный, вы могли бы, конечно, отделить презентацию от функциональности, но это история для другой статьи.
Модулярность король
Лучший способ развития – это следовать урокам объектно-ориентированных языков или объектно-ориентированного PHP. Вы не можете (или не хотите) кодировать все с классами, но общая философия очень полезна.
Виджеты в WordPress являются прекрасным примером. Используя довольно простой шаблон, вы можете создать заднюю форму для виджета и убедиться, что он сохраняет свои данные должным образом и что вы можете добавить фронтальный код. Затем виджет будет работать в любом месте, в любое время.
Вы можете применить те же принципы к большинству задач кодирования. Напишите код, который является как можно более независимым. Ваш код останется чистым и будет творить чудеса для обслуживания.
Правильные инструменты
Наибольший рост скорости во время разработки приходится на выбор правильных инструментов разработки. Ниже приведен список приложений и других инструментов, которые ускоряют вещи много для меня.
Меньше
Почти не головной или ателье в настоящее время, LESS или Sass должны быть в инструмент альный пояс каждого. Хотя не без критики,эти инструменты помогают намного больше, чем они вредят.
Краткое примечание о LESS. Многие люди действительно ненавидят идею использования LESS для CSS. Хотя их точки являются действительными, я не согласен. Но каждый должен сделать свой выбор. В конечном счете, все сводится к предпочтениям.
CodeKit
Я даже не могу начать объяснять, как сильно я люблю CodeKit. Он компилирует мой LESS туда, где я хочу его, concatenates JavaScript файлы на основе ввода файла, проверяет синтаксис, и делает тонну других вещей, которые я никогда даже не использовать.
Одним из предостережений является то, что это только Mac-только. Тонна альтернатив доступны, такие как mixture, Compass и Fire.app, но никто, что я знаю с набором функций CodeKit.
Фрагменты
Я не знаю, одинли ли я в этом деле, но я никогда не находил фрагменты особенно полезными. Большинство вещей должны быть настроены так много, что просто писать их с нуля было бы проще. Есть только два фрагмента, которые я использую, но я использую их так много, что они спасли меня по крайней мере сто часов к настоящему времени. Два фрагмента для печати переменной и выхода длинный комментарий:
// Printing a variable:
echo '<pre>';
print_r();
echo '</pre>';
// A long comment:
/*********************************************/
/* This is a section of code. */
/*********************************************/
Я установил это вверх в Coda 2, но вы можете использовать TextExpander и различные другие apps.
Регенерация эскизов
При коде вы можете обнаружить, что где-то требуется изображение другого размера или что требования к дизайну изменились. В первом случае следует создать изображение с точными размерами, необходимыми для сохранения пропускной способности. Вы можете сделать это с add_image_size()
функцией, хотя изображения не будут обрабатываться задним числом.
Я использую отличный плагин Regenerate Thumbnails для решения этой проблемы. Я пойду в разделе «Медиа» и регенерировать эскизы для одного элемента мультимедиа, или плагин может партии обрабатывать их все. Это может занять некоторое время, если у вас есть много изображений, но это полностью набор и забыть — вы можете просто продолжать работать.
Переключение пользователей
Вам нужно будет протестировать различные учетные записи, чтобы убедиться, что пользователи видят только то, что они должны видеть, особенно если у вас есть ролевая функциональность. Переключение пользователей является находкой, что позволяет переключаться между учетными записями одним щелчком мыши.
Иерархия шаблонов
«Иерархия шаблонов»и особенно диаграмма немного дальше на этой странице в Кодексе , помогут вам запомнить все страницы, которые вам нужно создать. Ты уверен, что не забыл 404.php
страницу? Вы создали отдельный attachment.php
файл для одного дисплея вложений? Никогда не забывайте файл снова с этой удобной диаграммы!
Инструменты разработки браузеров
Обучение использованию инструментов разработки браузера облегчит вашу жизнь. Возможность войти в DOM и посмотреть стили сделает фиксации CSS проблемы ветер. Переход на вкладку «Сеть» и при смотреть на ответ AJAX поможет вам отладить вызовы AJAX в считанные секунды, а использование функций отладки JavaScript (например, точки разрыва) поможет при отладке JavaScript.
WordPress Знания
Возможность выполнять сложные задачи с помощью запросов баз данных является огромной помощью. Если вы создали 200 тестовых постов и хотите удалить все, чьи названия имеют два экземпляра слова «или», это легко, если вы знаете, как запросить и манипулировать данными.
Он также помогает с «О, есть функция для этого?!» Синдром, который ногами после того как вы потратили час кодирования что-то, только чтобы обнаружить, что WordPress имеет функцию для него. Некоторые примеры wp_mail()
функции, которая позволяет отправлять электронную почту легко, wpautop()
функция, human_time_diff()
которая добавляет параграф теги к тексту, и функция, которая форматирует даты в «5 минут назад» формат.
Прежде чем пытаться закодировать небольшую функцию, я всегда ищу ее, на всякий случай. Перед кодированием большой функции, я ищу GitHub и другие места, чтобы увидеть, кто-нибудь сделал это раньше. Может быть, есть вырезать и вставить класс или что-то подобное.
Окончательное тестирование
Как только вы закончите, вы поймете, что вы никогда не сделали. Там всегда, что одна последняя ошибка, что одна функция, которая не работает в IE 9, и другие подобные раздражения. Чтобы свести к минимуму ошибки и максимизировать ваше здравомыслие, попробуйте трюки и инструменты ниже.
WordPress Тема Проверка
WordPress Тема Проверка (поддерживается WordPress собственных разработчиков) является чрезвычайно полезным инструментом для обеспечения того, чтобы ваша тема до спецификации. Первое, что Тема Лес делает, когда вы отправляете тему запустить эту вещь на нем, и они будут безжалостно отвергать вашу тему, если они видят ошибки.
Инструмент проверяет устаревшие функции, неправильные текстовые домены, скрытые файлы, необходимые функции и атрибуты и многое другое. Использование этого плагина является самым простым способом, чтобы убедиться, что ваша тема 100% WordPress-совместимых.
CloudApp и ПушистыйApp
CloudApp это сервис, который позволяет легко загружать файлы. Причина я люблю его так что он приходит с маленьким app который можно сконфигурировать для того чтобы сыграть славно с моей процедурой screenshot-making. На Mac, я просто Shift + Control + Command + 4
нажмите, чтобы сделать скриншот, а затем сразу же нажмите Control + Option + C
(этот ярлык может быть перенастроен) и ждать «пинг», что означает, что скриншот был загружен. Ссылка на скриншот уже в моем буфер обмена, так что я могу вставить его в электронную почту, чат сообщение или вопрос трекер.
Если вы находитесь на Windows, FluffyApp делает то же самое. Я уверен, что вы будете любить его!
Рабочий процесс управления ошибками
Я не буду входить в конкретные инструменты управления ошибками, потому что есть только так много. Я лично использую Sprint.ly,но сотни больших услуг доступны, такие как sifter, Маяк и Redmine.
Более важным, чем то, что вы используете, как вы используете его. Одна политика, которая помогла моей команде с нашими темами является то, что человек, который исправляет вопрос никогда не может отметить его как закрытые или принятые. Это гарантирует, что проблема надлежащим образом протестирована и одобрена человеком, который может увидеть ее более объективно.
Методология управления версиями
Наша система управления версиями дает нам два других преимущества. Мы уверены, что фиксация после каждой ошибки исправлена; это позволяет нам гораздо легче отслеживать изменения репозитория. Это также означает, что мы можем откатить версии гораздо более точно и избирательно.
Мы привязали нашу систему управления ошибками к нашей системе управления версиями, так что всякий раз, когда мы совершаем изменения, мы можем закрыть проблему прямо от командной строки, введя, скажем, Fixes #32
. Это работает в Sprint.ly и сифтер точно.
Хорошая документация
Хотя документация может показаться не непосредственно связанной с тестированием, это отличный способ проверить веб-сайт. Написав документацию, вы заставляете себя пройти через функции веб-сайта и убедитесь, что они работают.
Мы нашли поразительный генератор документации, который мы используем со всеми нашими темами сейчас. Помимо помощи нам написать документацию, он генерирует красивый формат без дополнительной работы на нашем конце.
Чем больше, тем лучше
Один из самых важных уроков, которые я узнал, что тема никогда не ошибка бесплатно. Если 100 человек проверить живые дневные свет из темы, 101-й человек (вероятно, первый покупатель) найдет ошибку в день запуска. Так оно и есть.
Вы можете свести к минимуму это и убедиться, что ошибки, по крайней мере, ограничивается бахромой случаях, потеряв как можно больше людей на вашу тему, как это возможно. Мы все разные, что означает, что мы используем вещи по-разному и найдем различные ошибки.
Еще одним важным преимуществом этого — один, что я не могу подчеркнуть достаточно — является то, что она позволяет для тестирования пользовательского опыта. Если только люди, с вами работают, проверили тему, скорее всего, вы что-то упустили, потому что вы все думаете так. Кнопка выпадения может быть мертвой очевидной для всех вас, но озадачивает обычного пользователя.
Большой путь улучшить вашу тему фактически сидеть и наблюдать по мере того как люди проверяют вашу тему. Я сделал больше изменений, чем я могу вспомнить в результате глупых вещей, которые пришли во время тестирования — и я имею в виду не то, что люди были глупы, но что я был глуп для проектирования этих вещей, как я и сделал. Помните, что нет такого понятия, как плохой пользователь, просто плохо разработанный инструмент.
Сделать видео-презентацию
Это звучит даже странно, чем тестирование на основе документации, не так ли? Но я обнаружил, что сделать видео презентации о теме это отличный способ поймать мелочи. Зная, что первое, что люди увидят это видео непреднамеренно заставляет вас зациклиться на мельчайших проблем.
Общая рутина для меня здесь заключается в том, что я получу 2 минуты в принятии видео, выпустить огромный вздох, остановить запись и пойти и исправить что-то. Затем я перезагрузить с нуля, получить до 2 минут и 15 секунд, и все начинается снова.
Лучший метод для меня, чтобы перезапустить с самого начала после остановки. Вместо этого я мог бы просто приостановить и возобновить, но когда я начинаю с нуля я иногда принимать другой подход, который раскрывает больше расхождений и ошибок.
Заключение
Я надеюсь, что эти советы были полезны, и что по крайней мере некоторые из них являются новыми для вас. Я думаю, что каждый делает много мелочей, которые мы все могли бы учиться. Я, вероятно, сделать еще 50 полезных вещей, которые я даже не замечаю, что я делаю.
Я полюбил бы услышать чего вы делаете для того чтобы испытать и качество и скорость ваших тем, поэтому пожалуйста поделятв в комментариях ниже!
Дальнейшее чтение
Источник: smashingmagazine.com