Шаблон:TemplateTester (OgQlku&TemplateTester)
TemplateTester — шаблон для тестирования других шаблонов. Ограниченно поддерживает вывод диффов, а также паттерны Lua. Модуль раскрывает тестируемые случаи использования шаблонов, а затем сравнивает с ожидаемым викитекстом или с ожидаемым паттерном.
Первым аргументом необходимо задать путь к модулю, в котором находятся наборы тестов.
Если тесты пройдены, то по умолчанию шаблон выведет лишь надпись о том, что тесты пройдены, со ссылкой на модуль с тестами. Информация о каждом из тестов в этом случае не отображается.
Формат
[править код]Общий формат:
{{TemplateTester|Модуль:Название модуля/testcases
|только проваленные =
}}
Примеры использования
[править код]Отображать только проваленные тесты для модуля Модуль:CiteGost:
{{TemplateTester|Модуль:CiteGost/testcases
|только проваленные = 1
}}
Отображать результаты тестирования для модуля Модуль:CiteGost:
{{TemplateTester|Модуль:CiteGost/testcases}}
Пример отображения тестов при наличии неудачных (демо):
{{TemplateTester|Модуль:TemplateTester/demo-failed}}
Пройдено тестов: 4 из 10. Неудачных: 6.
|
Пример отображения только неудачных тестов (демо):
{{TemplateTester|Модуль:TemplateTester/demo-failed|только проваленные=1}}
Пройдено тестов: 4 из 10. Неудачных: 6.
|
Формат модуля с тестами
[править код]Модуль с тестами должен возвращать таблицу-массив с наборами тестов. Каждый набор тоже представляет собой таблицу-массив, каждый элемент которого является параметрами отдельно взятого теста.
Каждый набор описывается следующими полями:
name
— название набора тестов.tests
— массив тестов, принадлежащих набору.
Каждый тест описывается следующими полями:
comment
— описание теста или комментарий к нему.input
— тестируемая строка.output
— ожидаемый Викитекст на выходе, который будет получен раскрытием поляinput
(игнорируется, если заданpattern
).pattern
— паттерн Lua, которому должен соответствовать раскрытыйinput
.
local suite1 = {
{
comment = 'Описание теста 1',
input = [[{{Вызова шаблона|Параметр=значение 1}}]],
-- С указанием результирующего текста:
output = '<span>Раскрытый шаблон 1</span>',
},
{
comment = 'Описание теста 2',
input = [[{{Вызова шаблона|Параметр=значение 2}}]],
-- С указанием паттерна:
pattern = '<span>%w</span>',
},
-- ...
}
local suite2 = {
{
comment = 'Описание теста 3',
input = [[{{Вызова шаблона|Параметр=значение 3}}]],
output = '<span>Раскрытый шаблон 3</span>',
},
{
comment = 'Описание теста 4',
input = [[{{Вызова шаблона|Параметр=значение 4}}]],
output = '<span>Раскрытый шаблон 4</span>',
},
-- ...
}
-- ...
local suites = {
{
name = 'Набор тестов 1',
tests = suite1,
},
{
name = 'Набор тестов 2',
tests = suite2,
},
-- ...
}
return suites
Параметры
[править код]В шаблоне указывается путь к модулю с наборами тестов. Дополнительно можно указать параметр, скрывающий успешные тесты.
Параметр | Описание | Тип | Статус | |
---|---|---|---|---|
Путь к модулю | 1 | Путь к модулю с наборами тестов. | Строковый (без форматирования) | обязательный |
Только проваленные | только проваленные | В таблице тестов показывать только проваленные тесты, успешные тесты отображаться не должны. | Строковый (без форматирования) | предложенный |