Шаблон:TemplateTester (OgQlku&TemplateTester)

Перейти к навигации Перейти к поиску
Документация

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

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

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

Формат

[править код]

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

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

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

[править код]

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

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

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

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

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

{{TemplateTester|Модуль:TemplateTester/demo-failed}}
Пройдено тестов: 4 из 10. Неудачных: 6.
Набор тестов 1 (1/3)
ТестОжидаетсяФактическиРазница
Тест 1 (с ошибкой)
Проба пера
Проба ошибки пераПроба пера
< ошибки
>
Тест 2
Проба    пера 1234567890
Проба%s+пера 1234567890Проба пера 1234567890
Тест 3 (с ошибкой)
Тест с двумя различиями, содержащимися в нём.
Тест с 2 различиями, которые содержатся в нём.Тест с двумя различиями, содержащимися в нём.
< 2
> двумя
< которые содержатся
> содержащимися
< содержатся
> содержащимися
Набор тестов 2 (0/3)
ТестОжидаетсяФактическиРазница
Тест 4 (с ошибкой)
Проба пера
Проба ошибка пераПроба пера
< ошибка
>
Тест 5 (с ошибкой)
<span>Набор слов, но со знаком в конце.</span>
%w+Набор слов, но со знаком в конце.
< %w+
> Набор слов, но со знаком в конце.
Не задан параметр inputНе задан параметр output или patternnil
Набор тестов 3 (все успешные) (2/2)
ТестОжидаетсяФактическиРазница
Тест 6
Некоторый текст и Ok
Некоторый текст и [a-zA-Z][a-zA-Z]Некоторый текст и Ok
Тест 7
Некоторый текст и Ok
Некоторый текст и OkНекоторый текст и Ok
Набор тестов 4 (1/2)
ТестОжидаетсяФактическиРазница
Тест 8
Некоторый текст и Ok
Некоторый текст и [a-zA-Z][a-zA-Z]Некоторый текст и Ok
Тест 9 (с ошибкой)
Некоторый текст и Ok
OkНекоторый текст и Ok
<
> Некоторый текст и

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

{{TemplateTester|Модуль:TemplateTester/demo-failed|только проваленные=1}}
Пройдено тестов: 4 из 10. Неудачных: 6.
Набор тестов 1 (1/3)
ТестОжидаетсяФактическиРазница
Тест 1 (с ошибкой)
Проба пера
Проба ошибки пераПроба пера
< ошибки
>
Тест 3 (с ошибкой)
Тест с двумя различиями, содержащимися в нём.
Тест с 2 различиями, которые содержатся в нём.Тест с двумя различиями, содержащимися в нём.
< 2
> двумя
< которые содержатся
> содержащимися
< содержатся
> содержащимися
Набор тестов 2 (0/3)
ТестОжидаетсяФактическиРазница
Тест 4 (с ошибкой)
Проба пера
Проба ошибка пераПроба пера
< ошибка
>
Тест 5 (с ошибкой)
<span>Набор слов, но со знаком в конце.</span>
%w+Набор слов, но со знаком в конце.
< %w+
> Набор слов, но со знаком в конце.
Не задан параметр inputНе задан параметр output или patternnil
Набор тестов 4 (1/2)
ТестОжидаетсяФактическиРазница
Тест 9 (с ошибкой)
Некоторый текст и Ok
OkНекоторый текст и Ok
<
> Некоторый текст и

Формат модуля с тестами

[править код]

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

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

  • 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

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

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

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

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