Шаблон:TemplateTester/doc

Материал из wikixw
Перейти к навигации Перейти к поиску

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

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

Если тесты пройдены, то по умолчанию шаблон выведет лишь надпись о том, что тесты пройдены, со ссылкой на модуль с тестами. Информация о каждом из тестов в этом случае не отображается.

Формат[править]

Общий формат:

{{TemplateTester|Модуль:Название модуля/testcases
 |только проваленные =
}}

Примеры использования[править]

Отображать только проваленные тесты для модуля Модуль:CiteGost:

{{TemplateTester|Модуль:CiteGost/testcases
 |только проваленные = 1
}}

Отображать результаты тестирования для модуля Модуль:CiteGost:

{{TemplateTester|Модуль:CiteGost/testcases}}

Пример отображения тестов при наличии неудачных (демо):

{{TemplateTester|Модуль:TemplateTester/demo-failed}}

Ошибка Lua в package.lua на строке 80: module 'Модуль:I18n' not found.

Пример отображения только неудачных тестов (демо):

{{TemplateTester|Модуль:TemplateTester/demo-failed|только проваленные=1}}

Ошибка Lua в package.lua на строке 80: module 'Модуль:I18n' not found.

Формат модуля с тестами[править]

Модуль с тестами должен возвращать таблицу-массив с наборами тестов. Каждый набор тоже представляет собой таблицу-массив, каждый элемент которого является параметрами отдельно взятого теста.

Каждый набор описывается следующими полями:

  • 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

Путь к модулю с наборами тестов.

Строковый (без форматирования)обязательный
Только проваленныетолько проваленные

В таблице тестов показывать только проваленные тесты, успешные тесты отображаться не должны.

Строковый (без форматирования)предложенный