stringtranslate.com

Википедия: Песочница шаблонов и тестовые примеры

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

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

Именование подстраниц песочницы и тестовых наборов

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Основной формат

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

== Описательное название == * <code><nowiki>{{ шаблон | параметр1 = значение1 | параметр2 = значение2 }}</nowiki></code> '''Основной''' {{ шаблон | параметр1 = значение1 | параметр2 = значение2 }} '''Песочница''' {{ шаблон /песочница| параметр1 = значение1 | параметр2 = значение2 }}

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

Для шаблонов, в которых используется атрибут CSS «float», вам потребуется использовать шаблон {{ clear }}, чтобы результаты не группировались:

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

Викитаблица

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

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

{| класс="викитаблица"|-! Код! Основной! Песочница<!-- Каждый новый тестовый пример можно добавить следующим образом: -->|-| <code><nowiki> {{ шаблон | параметр1 = значение1 | параметр2 = значение2 }} </nowiki></code>
| {{ шаблон | параметр1 = значение1 | параметр2 = значение2 }}| {{ шаблон /песочница| параметр1 = значение1 | параметр2 = значение2 }}<!-- Завершите таблицу следующим образом: -->|}

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

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

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

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

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

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

Примеры

Основной формат
Шаблон:Цитата , Шаблон:Цитата/песочница и Шаблон:Цитата/тестовые примеры
Викитаблица
Шаблон:Diff , Шаблон:Diff/песочница и Шаблон:Diff/тестовые примеры
Таблица тестовых примеров
Шаблон:Расчет в Infobox , Шаблон:Расчет в Infobox/песочница и Шаблон:Расчет в Infobox/тестовые примеры

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