Страница полузащищенная
Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Шаблоны - очень мощная функция программного обеспечения MediaWiki, используемого для Википедии , но ошибки могут быть легко допущены даже опытными пользователями. Поэтому сложные шаблоны должны сопровождаться песочницами и тестовыми примерами для предотвращения ошибок. Временные песочницы X1 - X20 или песочница шаблона могут быть полезными местами для опробования новых экспериментов или для пользователей, плохо знакомых с разработкой шаблонов.

Именование подстраниц Sandbox и testcases

В большинстве защищенных шаблонов уже есть подстраница песочницы и подстраница тестовых случаев. Имена этих страниц заданы по умолчанию. Внизу страницы каждого шаблона есть ссылки для создания / редактирования страниц тестовой среды и тестовых сценариев.

Например, вот подстраницы для {{ FlagIOCmedalist }} :

Для каких шаблонов следует использовать песочницу

Настоятельно рекомендуется применять шаблон тестового случая к шаблонам с использованием функций ParserFunctions, которые могут генерировать очень разный внешний вид вывода, например, те, которые принимают много параметров, или те, которые имеют много ветвей #switchоператора.

Для полей навигации с в основном одинаковыми результатами на каждой включаемой странице преимущество может не перевешивать время и усилия на создание страницы песочницы, но, если есть сомнения, поместите ее в песочницу. Любой шаблон, помеченный как шаблон с высокой степенью риска, всегда следует тестировать перед внесением изменений. На других страницах вы все равно должны проверять, какие страницы используют шаблон (с помощью ссылки «Какие ссылки здесь» в разделе «Инструменты» панели ссылок в левой части экрана).

Как создать подстраницы / sandbox и / testcases

  1. Предположим, ваш шаблон назван Template:X. Создайте подстраницу с названием Template:X/sandbox. Если в основном шаблоне используется шаблон {{ documentation }}, вы можете сделать это, перейдя по ссылке внизу синего окна документации на главной странице шаблона. Или вы можете ввести его в поле поиска или прямо в адресную строку браузера. Обратите внимание, что «/ sandbox» пишется в нижнем регистре.
  2. Скопируйте все содержимое основного шаблона, включая <noinclude>теги и шаблон {{ documentation }}, если он есть, вставьте его в окно редактирования на подстранице / sandbox и сохраните страницу. Резюме вашего редактирования должно быть примерно таким create sandbox version of [[Template:X]].
    • Примечание: если вы воспользуетесь ссылкой «зеркало» внизу синего окна документации, теги вроде <noinclude>и их содержимое будут отсутствовать. Лучше всего просто скопировать и вставить вручную.
  3. Создайте еще одну подстраницу с именем Template:X/testcases. На эту страницу ведет ссылка из нижней части синего окна документации, если она действительно существует, поэтому для ее создания вам нужно будет создать ее, введя имя страницы в поле поиска или в адресную строку браузера. Опять же, обратите внимание, что «/ testcases» - это все строчные буквы и все одно слово.
  4. Поместите шаблон {{ testcases notice }} вверху страницы, добавьте несколько тестовых примеров (см. Ниже) и сохраните страницу.
  5. Добавьте свой экспериментальный код в Template:X/sandbox. Чтобы протестировать свой код, сохраните страницу и перейдите на страницу / testcases. Часто вам нужно очистить страницу / testcases, чтобы увидеть обновленные результаты; в шаблоне {{ testcases notice }} есть ссылка для этого . После очистки страницы сравните результаты для основного шаблона с результатами для песочницы, и, если все в порядке, вы можете обновить основной шаблон. Однако будьте осторожны с отсутствием тестовых примеров и кода, который можно протестировать только в определенных пространствах имен или на определенных страницах.

Как обновить существующие подстраницы / sandbox и / testcases

Чтобы внести изменения в шаблон, в котором уже есть подстраницы / sandbox и / testcases, процесс аналогичен описанному выше.

  1. В / песочнице может не быть последней версии кода шаблона, поэтому, прежде чем вносить изменения, вам необходимо синхронизировать его с основным шаблоном. Скопируйте все содержимое основного шаблона на подстраницу / sandbox и сохраните страницу. Сводка редактирования должна быть чем-то вроде «синхронизировать с основным шаблоном» или просто «синхронизировать».
  2. Удачи, редактируя песочницу. Когда у вас есть код, который вы хотите протестировать, сохраните страницу.
  3. Если вы добавили какие-либо новые функции или изменили какие-либо параметры, вам следует добавить новые тестовые примеры на подстраницу / testcases, чтобы их можно было протестировать. Также имейте в виду, что существующие тестовые примеры могут быть неполными. Это нормально - переписать тестовые примеры, если они бесполезны для того, чего вы пытаетесь достичь, но также подумайте о редакторах, которые могут использовать тестовые примеры после вас.
  4. Чистки страницы / testcases для обновления результатов.
  5. Убедитесь, что результаты тестового набора верны. Если все в порядке, скопируйте код из песочницы в основной шаблон.

Добавление тестовых случаев

На странице / testcases должен быть один тестовый пример для каждого различного поведения вашего шаблона. Например, если ваш шаблон выводит баннерное сообщение, и если параметр |italic=yesделает это сообщение курсивом, вы должны добавить один тестовый пример для обычного сообщения и один для сообщения, выделенного курсивом. Если в этом шаблоне есть другой параметр, |date=где пользователь вставляет дату, то для этого должен быть третий тестовый пример. Вы должны постараться и быть внимательными и обосновать все способы использования вашего шаблона пользователями; однако часто нецелесообразно добавлять тестовые примеры для каждой отдельной комбинации параметров, поэтому вам следует выбирать наиболее подходящие из них с умом.

Есть довольно много разных стилей тестовых примеров, которые вы можете использовать. Какой из них вы выберете, зависит от характера шаблона, над которым вы работаете. Например, для коротких выходных шаблонов, которые умещаются в одной строке, может быть полезно поместить тестовые примеры внутри вики-таблицы, а для длинных и тонких шаблонов, таких как информационные блоки, часто лучше отображать их рядом, используя {{ таблица тестовых примеров }}.

Ручное форматирование

Форматирование вручную дает вам большую гибкость, но необходимо следить за тем, чтобы все параметры шаблона были введены правильно. Ошибку в одном из тестовых примеров часто труднее найти, чем ошибку в самом шаблоне.

Базовый формат

Этот формат хорошо подходит для шаблонов баннеров и для длинного текста, например, цитат. Обратите внимание, что вы можете автоматически форматировать эти виды тестов с помощью Template: Test case и других подобных шаблонов.

== Описательный заголовок == * <code> <nowiki> {{ шаблон | param1 = value1 | param2 = значение2 }} </nowiki> </code> '''Основной''' {{ шаблон | param1 = value1 | параметр2 = значение2 }} '' Песочница '' {{ template / sandbox | param1 = value1 | параметр2 = значение2 }}

Все значения template , param1 , value1 и т. Д. Должны быть идентичными.

Для шаблонов, которые используют атрибут CSS "float", вам нужно будет использовать шаблон {{ clear }}, чтобы не допустить объединения результатов в группы:

== Описательный заголовок == * <code> <nowiki> {{ шаблон | param1 = value1 | param2 = значение2 }} </nowiki> </code> '''Основной''' {{ шаблон | param1 = value1 | параметр2 = значение2 }} {{Чисто}} '' Песочница '' {{ template / sandbox | param1 = value1 | параметр2 = значение2 }} {{Чисто}}

Wikitable

Использование wikitable для форматирования тестовых примеров часто полезно для шаблонов с короткими выводами, которые необходимо правильно выстроить.

Начните таблицу так:

{| class = "wikitable"| -! Код! Основной! Песочница<! - Каждый новый тестовый пример можно добавить так: ->| -| <code> <nowiki> {{ шаблон | param1 = value1 | param2 = value2 }} </nowiki> </code>
| {{ шаблон | param1 = value1 | параметр2 = значение2 }}| {{ template / sandbox | param1 = value1 | параметр2 = значение2 }}<! - Завершите таблицу так: ->|}

Автоматическое форматирование

Существуют различные шаблоны, которые помогут вам автоматически отформатировать тестовые случаи. В этих шаблонах параметры и значения вводятся только один раз, но по-прежнему тестируются как для основного шаблона, так и для шаблонов песочницы. Это позволяет избежать проблемы с ошибками в параметрах тестового примера и упрощает обслуживание страниц тестового примера. Эти шаблоны включают:

  • Шаблон: тестовый пример , для тестовых примеров общего назначения
  • Шаблон: таблица Testcase, для длинных и тонких шаблонов, таких как информационные блоки.
  • Шаблон: встроенный тестовый пример для длинных и тонких шаблонов, таких как информационные блоки.
  • Шаблон: Тестовый пример nowiki , для шаблонов со сложными вызовами
  • Шаблон: сворачиваемый тестовый пример , чтобы свернуть тестовые случаи, когда основной и тестовый шаблоны дают одинаковый результат.

Обратите внимание, что все эти шаблоны могут создавать сворачиваемые тестовые наборы, но в Template: Collapsible test case эта функция включена по умолчанию. Подробную документацию см. На отдельных страницах шаблона.

Тесты, которые нельзя выполнить на страницах / testcases

Некоторые функции шаблона нельзя протестировать на страницах / testcases. Например, шаблон может выводить только определенный текст в основном пространстве имен, или он может выводить разные вещи, когда он используется на базовой странице и когда он используется на подстранице. Для таких тестов вы можете использовать функцию «Предварительный просмотр страницы с этим шаблоном», которую вы можете увидеть под окном редактирования на страницах шаблонов. Чтобы сделать эту функцию еще более мощной, вы можете установить User: Jackmcbarn / advancedtemplatesandbox.js , что делает его пригодным для использования в любом пространстве имен и позволяет указать заголовок шаблона, а также страницу для его предварительного просмотра. Это означает, что вы можете редактировать шаблон песочницы, но предварительно просматривать страницы, как если бы вы действительно редактировали основной шаблон.

Если вы можете вспомнить какие-либо тесты, которые нельзя выполнить на странице / testcases, может быть полезно оставить заметку в верхней части страницы / testcases с указанием того, что еще требует тестирования, чтобы будущие редакторы этого шаблона также осведомленный.

Примеры

Базовый формат
Шаблон: Цитата , Шаблон: Цитата / песочница и Шаблон: Цитата / тестовые примеры
Wikitable
Шаблон: Diff , Шаблон: Diff / песочница и Шаблон: Diff / testcases
Таблица Testcase
Шаблон: поселение с информационным ящиком , Шаблон: поселение с информационным ящиком / песочница и Шаблон: поселение с информационным ящиком / тестовые примеры

Смотрите также

  • Википедия: шаблоны высокого риска
  • Справка: Шаблон - общая справка по коду шаблона
  • Википедия: Ограничения шаблонов - технические ограничения на использование шаблонов
  • {{ Template sandbox }} - песочница для использования в шаблонах тестирования
  • Special: ExpandTemplates
  • Специально: TemplateSandbox