Jump to content

Module:Cонверт/тестер/доc

From Vikipediya

This is the documentation page for Modul:Convert/tester

Тҳис модуле рунс унит тесц то cомпаре темплате оутпут wитҳ эхпеcтед техт. Ин аддитион, тҳе модуле cан оутпут тҳе ресулц оф эхпандинг темплатес.

Wҳиле интендед фор тестинг Модуле:Cонверт, тҳе тестер шоулд бе усефул wитҳ отҳер темплатес тҳат реқуире манй тесц усинг а симпле формат фор тҳе тест инпут.

Тестcасес эхампле

[edit source]

Ит ис нот неcессарй то саве тҳе тестcасес паге бефоре виэwинг тест ресулц. Фор эхампле, Модуле:Cонверт/сандбох/тестcасес cоулд бе эдитед то чанге тҳе тесц. Wҳиле стилл эдитинг тҳат паге, пасте "Module talk:Convert/sandbox/testcases" (wитҳоут қуотес) инто тҳе паге титле бох ундер "Превиэw паге wитҳ тҳис темплате", тҳен cлиcк "Шоw превиэw".

Тҳе тестcасес талк паге (фор эхампле, Модуле талк:Cонверт/сандбох/тестcасес) cонтаинс:

{{#invoke:convert/sandbox/testcases|run_tests}}

Тҳе тестcасес модуле паге (фор эхампле, Модуле:Cонверт/сандбох/тестcасес) май cонтаин:

local tests = [==[

A template to be tested must be at the start of a line.
Lines which do not start with a template are ignored.
{{convert/sandbox|1|acre|lk=on}}            1 [[acre]] (0.40 [[hectare|ha]])
{{convert/sandbox|1|m2|acres|lk=on}}        1 [[square metre]] (0.00025 [[acre]]s)
{{convert/sandbox|0.16|/l|2|disp=table}}    align="right"|0.16\n|align="right"|0.61

]==]

local p = require('Module:Convert/tester')
p.tests = tests
return p

Иф wантед, тҳе тесц cан бе рун усинг а темплате дифферент фром тҳе оне спеcифиэд ин тҳе тесц. Фор эхампле, тҳе фоллоwинг wоулд рун тҳе тесц фром Модуле:Cонверт/сандбох/тестcасес, бут wоулд чанге тҳе наме оф эач темплате фоунд он тҳат паге то "convert/sandbox2".

{{#invoke:convert/sandbox/testcases|run_tests|template=convert/sandbox2}}

Формат

[edit source]

Тесц аре эхтраcтед фром а мултилине стринг. Анй лине тҳат доэс нот старт wитҳ а темплате ис игноред. Эач проcессед лине старц wитҳ а темплате, анд ис фоллоwед бй wҳитеспаcе, тҳен тҳе wикитехт wҳич шоулд ресулт фром эхпандинг тҳе темплате.

Тҳе эхпеcтед оутпут муст бе энтеред ин а сингле лине. Иф тҳе темплате оутпуц мултипле линес, тҳосе линес муст бе жоинед wитҳ "\н" (тwо чараcтерс—баcкслаш n).

Тҳе темплатес до нот ҳаве то бе тҳе саме, фор эхампле, тҳе фоллоwинг тесц wоулд wорк:

local tests = [==[

{{convert|12|m}}                            12 metres (39 ft)
{{convert/sandbox|12|m}}                    12 metres (39 ft)
{{age|1989|7|23|2003|7|14}}                 13
{{age in days|2007|5|24|2008|4|23}}         335

]==]

Ин тҳе ресулц, тҳе статус cолумн шоwс "Пасс" иф тҳе оутпут фром тҳе темплате эхаcтлй матчес тҳе эхпеcтед техт. Иф тҳере ис но эхпеcтед техт, тҳе темплате оутпут ис шоwн ин тҳе Аcтуал cолумн wитҳ а бланк статус. Иф тҳе гивен эхпеcтед техт дифферс фром тҳе темплате оутпут, тҳе темплате оутпут ис шоwн ин тҳе Аcтуал cолумн wитҳ статус "Фаил", анд тҳе нумбер оф фаилс ис шоwн ат тҳе топ оф тҳе паге. Сеарчинг тҳе паге фор "Фаил" wилл финд эач проблем. Анй "Фаил" ресулт ис фоллоwед бй а роw шоwинг тҳе ноwики аcтуал анд эхпеcтед wикитехт.

Спеcифйинг тесц

[edit source]

Иф усинг а тестcасес модуле (ас ин тҳе абове эхампле), тҳе тест техт ис ассигнед то p.tests бефоре эхеcутинг run_tests.

Алтернативелй, тҳе тест техт cан бе реад фром анй паге, ор фром анй сеcтион он анй паге. Фор эхампле, тҳе фоллоwинг wикитехт cоулд бе энтеред ин а сандбох:

== Mixed tests ==
<pre>
{{convert|12|m}}                            12 metres (39 ft)
{{convert/sandbox|0.16|/l|2|disp=table}}    align="right"|0.16\n|align="right"|0.61
{{age in days|2007|5|24|2008|4|23}}         335
--- The following line is incorrect to demonstrate a "fail".
{{convert|12|m|lk=on}}                      12 [[meter|metres]] (39 [[Foot|ft]])
The following line demonstrates the result when no expected text is provided.
{{convert/sandbox|1|-|5|in|mm|lk=on}}
</pre>

Гивен тҳе абове, тҳе тесц cан бе рун ас шоwн ин тҳе фоллоwинг сеcтион.

Инстеад оф спеcифйинг тҳе тесц wитҳ а мултилине стринг, ит ис поссибле то ассигн а табле то p.tests ас шоwн ин тҳе фоллоwинг тестcасес модуле.

local tests = {
    -- Each test item is of form { template, expected }.
    { '{{convert|12|m}}', '12 metres (39&nbsp;ft)' },
    { '{{convert/sandbox|0.16|/l|2|disp=table}}', 'align="right"|0.16\n|align="right"|0.61' },
    { '{{age in days|2007|5|24|2008|4|23}}', '335' },
    { '{{convert|12|m|lk=on}}', '12 [[meter|metres]] (39&nbsp;[[Foot|ft]])' },
    { '{{convert/sandbox|1|-|5|in|mm|lk=on}}' },
}

local p = require('Module:Convert/tester')
p.tests = tests
return p

Тҳис эхампле провидес тҳе саме ресулц ас тҳе мултилине стринг ат "Михед тесц" абове.

Руннинг тесц фром анй паге

[edit source]

Энтеринг эитҳер оф тҳе фоллоwинг линес оф wикитехт ин а сандбох ор талк паге wоулд рун тҳе тесц фоунд ат тҳе спеcифиэд лоcатион. Тҳе фирст лине wоулд шоw алл тесц он паге "Темплате талк:Эхампле", wҳиле тҳе сеcонд wоулд шоw онлй тҳосе тесц он тҳат паге тҳат аре ин тҳе "Михед тесц" сеcтион.

{{#invoke:convert/tester|run_tests|page=Template talk:Example}}
{{#invoke:convert/tester|run_tests|page=Template talk:Example|section=Mixed tests}}

Ас а демонстратион, тҳе фоллоwинг лине ис усед то продуcе тҳе табле шоwн белоw, инcлудинг тҳе cоммент тҳат старц wитҳ тҳреэ дашес.

{{#invoke:convert/tester|run_tests|page=Module:Convert/tester/doc|section=Specifying tests|show=all}}

3 тесц фаилед, 1 тест игноред беcаусе эхпеcтед техт ис бланк.

Темплате Эхпеcтед Аcтуал, иф дифферент Статус
{{cонверт|12|м}} 12 метрес (39 фт) 12 метр (39 фт) Фаил
(абове, ноwики) 12 метрес (39&нбсп;фт) 12 метр (39&нбсп;фт)
{{cонверт/сандбох|0.16|/л|2|дисп=табле}} алигн="ригҳт"|0.16
|алигн="ригҳт"|0.61
Эррор: эхпандТемплате: темплате "cонверт/сандбох" доэс нот эхист Фаил
(абове, ноwики) алигн="ригҳт"|0.16
|алигн="ригҳт"|0.61
Эррор: эхпандТемплате: темплате "cонверт/сандбох" доэс нот эхист
{{аге ин дайс|2007|5|24|2008|4|23}} 335 Пасс
Тҳе фоллоwинг лине ис инcорреcт то демонстрате а "фаил". Cмнт
{{cонверт|12|м|лк=он}} 12 метрес (39 фт) 12 метр (39 фт) Фаил
(абове, ноwики) 12 [[метер|метрес]] (39&нбсп;[[Фоот|фт]]) 12 [[метр]] (39&нбсп;[[Фут|фт]])
{{cонверт/сандбох|1|-|5|ин|мм|лк=он}} Эррор: эхпандТемплате: темплате "cонверт/сандбох" доэс нот эхист

Макинг эхпеcтед ресулц

[edit source]

Фунcтион make_tests cан бе усед то cреате тесц ин тҳе формат эхпеcтед бй run_tests. Фор эхампле, превиэwинг эитҳер оф тҳе фоллоwинг ин а сандбох wоулд шоw тҳе ресулц фром эхпандинг эач темплате фоунд он тҳе спеcифиэд паге.

{{#invoke:convert/tester|make_tests|page=Template talk:Example}}
{{#invoke:convert/tester|make_tests|page=Template talk:Example|show=all}}

Wҳен усинг make_tests, анй эхпеcтед ресулц ин тҳе инпут аре игноред. Инстеад, тҳе модуле шоwс эач темплате анд иц аcтуал оутпут ас плаин техт wҳич cан бе cопиэд то маке а тестcасес паге. Тҳе темплатес то бе проcессед cан бе спеcифиэд бй сеттинг p.tests ор бй спеcифйинг а паге wитҳ ан оптионал сеcтион.

Иф |show=all ис инcлудед, анй нон-темплате линес аре инcлудед ин тҳе ресулт. Тҳе оутпут cоулд тҳен бе cопиэд анд усед то реплаcе тҳе паге wитҳ тҳе тесц ин ордер то упдате тҳе эхпеcтед техт фор эач темплате, бут wитҳоут чангинг нон-темплате линес.

Ас а демонстратион, тҳе фоллоwинг лине ис усед то продуcе тҳе техт шоwн белоw.

{{#invoke:convert/tester|make_tests|page=Module:Convert/tester/doc|section=Specifying tests}}
{{convert|12|m}}                          12 metr (39&nbsp;ft)
{{convert/sandbox|0.16|/l|2|disp=table}}  Error: expandTemplate: template "convert/sandbox" does not exist
{{age in days|2007|5|24|2008|4|23}}       335
{{convert|12|m|lk=on}}                    12 [[metr]] (39&nbsp;[[Fut|ft]])
{{convert/sandbox|1|-|5|in|mm|lk=on}}     Error: expandTemplate: template "convert/sandbox" does not exist

Усинг шоw=алл

[edit source]

Тҳе |show=all оптион cан бе усед wитҳ make_tests анд wитҳ run_tests.

Ан эхампле усинг make_tests ис шоwн ин тҳе превиоус сеcтион.

Усинг |show=all wитҳ run_tests аллоwс cоммент линес то бе дисплаед ин тҳе оутпут табле—нот алл линес аре шоwн, онлй тҳосе тҳат старт wитҳ тҳреэ дашес. Фор эхампле, тҳе тестcасес май инcлуде тҳе фоллоwинг.

Added 12 January 2014.
--- The following tests check the widget option.
{{example|1|2|widget=on}}          ...(expected output)...

Тҳе табле продуcед бй run_tests wоулд шоw "Тҳе фоллоwинг тесц чеcк тҳе wидгет оптион." ас а cоммент лине, бут онлй иф |show=all ис усед. Cомменц ҳаве а дистинcтиве баcкгроунд cолор, бут алсо шоw "Cмнт" ин тҳе статус cолумн со тҳей cан бе фоунд бй сеарчинг.

Cомпаринг а модуле wитҳ иц сандбох

[edit source]

Wҳен виэwинг а модуле, тҳе доcументатион паге ис дисплаед; иф тҳе модуле ҳас а сандбох, тҳе доcументатион инcлудес "Эдиторс cан эхперимент ин тҳис модуле'с сандбох" wитҳ а линк то дифф тҳе модуле анд иц сандбох.

Тҳе тестер модуле провидес а compare фунcтион wҳич cан чеcк а сериэс оф модулес, анд cомпаре эач wитҳ иц сандбох. А табле ис дисплаед шоwинг wҳетҳер тҳе cонтент ис дифферент, wитҳ а дифф линк.

Фор эхампле, тҳе фоллоwинг wикитехт cоулд бе усед.

{{#invoke:convert/tester|compare|Example|Example/data}}

Тҳе намес "Эхампле" анд "Эхампле/дата" до нот инcлуде а cолон (:), со "Модуле:" ис ассумед. Тҳе cомманд cомпарес Модуле:Эхампле wитҳ Модуле:Эхампле/сандбох, анд Модуле:Эхампле/дата wитҳ Модуле:Эхампле/дата/сандбох.

Ит ис алсо поссибле фор а модуле то дефине паирс оф паге титлес ин p.pairs (а табле), анд то усе тҳе тестер модуле то генерате а табле фор эач паир оф титлес.

Ас а cонвениэнcе, cертаин кейwордс аре дефинед. Иф а кейwорд ис реcогнизед, тҳе лист оф паирс cомес фром тҳе модуле ратҳер тҳан тҳе параметерс. Фор эхампле, тҳе фоллоwинг усес тҳе "cонверт" кейwорд то гет тҳе лист оф паирс оф пагес релатед то Модуле:Cонверт.

{{#invoke:convert/tester|compare|convert}}

Тҳе фоллоwинг техт ис а сампле шоwинг оутпут тҳат май ресулт фром тҳе абове.

Бй дефаулт, эач оутпут лине ис префихед wитҳ '*' то гиве а буллетед лист. Ан алтернативе префих cан бе спеcифиэд wитҳ тҳе prefix параметер. Фор эхампле, тҳе фоллоwинг гивес ан индентед буллетед лист.

{{#invoke:convert/tester|compare|convert|prefix=:*}}