Interested Article - TemplateTester
- 2020-04-15
- 1
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
|
Путь к модулю с наборами тестов. |
Строковый (без форматирования) | обязательный |
Только проваленные |
только проваленные
|
В таблице тестов показывать только проваленные тесты, успешные тесты отображаться не должны. |
Строковый (без форматирования) | предложенный |
- 2020-04-15
- 1