Модул:Цонверт/тестер/доц

Izvor: Vojna Enciklopedija
Пређи на навигацију Пређи на претрагу

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

Wхиле интендед фор тестинг Модуле:Цонверт, тхе тестер схоулд бе усефул wитх отхер темплатес тхат реqуире манy тестс усинг а симпле формат фор тхе тест инпут.

Тестцасес еxампле

Ит ис нот нецессарy то саве тхе тестцасес паге бефоре виеwинг тест ресултс. Фор еxампле, Модуле:Цонверт/сандбоx/тестцасес цоулд бе едитед то цханге тхе тестс. Wхиле стилл едитинг тхат паге, пасте "Module talk:Convert/sandbox/testcases" (wитхоут qуотес) инто тхе паге титле боx ундер "Превиеw паге wитх тхис темплате", тхен цлицк "Схоw превиеw".

Тхе тестцасес талк паге (фор еxампле, Модуле талк:Цонверт/сандбоx/тестцасес) цонтаинс:

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

Тхе тестцасес модуле паге (фор еxампле, Модуле:Цонверт/сандбоx/тестцасес) маy цонтаин:

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антед, тхе тестс цан бе рун усинг а темплате дифферент фром тхе оне специфиед ин тхе тестс. Фор еxампле, тхе фоллоwинг wоулд рун тхе тестс фром Модуле:Цонверт/сандбоx/тестцасес, бут wоулд цханге тхе наме оф еацх темплате фоунд он тхат паге то "convert/sandbox2".

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

Формат

Тестс аре еxтрацтед фром а мултилине стринг. Анy лине тхат доес нот старт wитх а темплате ис игноред. Еацх процессед лине стартс wитх а темплате, анд ис фоллоwед бy wхитеспаце, тхен тхе wикитеxт wхицх схоулд ресулт фром еxпандинг тхе темплате.

Тхе еxпецтед оутпут муст бе ентеред ин а сингле лине. Иф тхе темплате оутпутс мултипле линес, тхосе линес муст бе јоинед wитх "\н" (тwо цхарацтерс—бацксласх n).

Тхе темплатес до нот хаве то бе тхе саме, фор еxампле, тхе фолло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

]==]

Ин тхе ресултс, тхе статус цолумн схоwс "Пасс" иф тхе оутпут фром тхе темплате еxацтлy матцхес тхе еxпецтед теxт. Иф тхере ис но еxпецтед теxт, тхе темплате оутпут ис схоwн ин тхе Ацтуал цолумн wитх а бланк статус. Иф тхе гивен еxпецтед теxт дифферс фром тхе темплате оутпут, тхе темплате оутпут ис схоwн ин тхе Ацтуал цолумн wитх статус "Фаил", анд тхе нумбер оф фаилс ис схоwн ат тхе топ оф тхе паге. Сеарцхинг тхе паге фор "Фаил" wилл финд еацх проблем. Анy "Фаил" ресулт ис фоллоwед бy а роw схоwинг тхе ноwики ацтуал анд еxпецтед wикитеxт.

Специфyинг тестс

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

Алтернативелy, тхе тест теxт цан бе реад фром анy паге, ор фром анy сецтион он анy паге. Фор еxампле, тхе фоллоwинг wикитеxт цоулд бе ентеред ин а сандбоx:

== 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>

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

Инстеад оф специфyинг тхе тестс wитх а мултилине стринг, ит ис поссибле то ассигн а табле то p.tests ас схоwн ин тхе фоллоwинг тестцасес модуле.

local tests = {
    -- Each test item is of form { template, expected }.
    { '{{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' },
    { '{{convert|12|m|lk=on}}', '12 [[meter|metres]] (39 [[Foot|ft]])' },
    { '{{convert/sandbox|1|-|5|in|mm|lk=on}}' },
}

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

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

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

Ентеринг еитхер оф тхе фоллоwинг линес оф wикитеxт ин а сандбоx ор талк паге wоулд рун тхе тестс фоунд ат тхе специфиед лоцатион. Тхе фирст лине wоулд схоw алл тестс он паге "Темплате талк:Еxампле", wхиле тхе сецонд wоулд схоw онлy тхосе тестс он тхат паге тхат аре ин тхе "Миxед тестс" сецтион.

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

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

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

Луа еррор: Цаннот цреате процесс: проц_опен(/дев/нулл): фаилед то опен стреам: Оператион нот пермиттед

Макинг еxпецтед ресултс

Фунцтион make_tests цан бе усед то цреате тестс ин тхе формат еxпецтед бy run_tests. Фор еxампле, превиеwинг еитхер оф тхе фоллоwинг ин а сандбоx wоулд схоw тхе ресултс фром еxпандинг еацх темплате фоунд он тхе специфиед паге.

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

Wхен усинг make_tests, анy еxпецтед ресултс ин тхе инпут аре игноред. Инстеад, тхе модуле схоwс еацх темплате анд итс ацтуал оутпут ас плаин теxт wхицх цан бе цопиед то маке а тестцасес паге. Тхе темплатес то бе процессед цан бе специфиед бy сеттинг p.tests ор бy специфyинг а паге wитх ан оптионал сецтион.

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

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

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

Луа еррор: Цаннот цреате процесс: проц_опен(/дев/нулл): фаилед то опен стреам: Оператион нот пермиттед

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

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

Ан еxампле усинг make_tests ис схоwн ин тхе превиоус сецтион.

Усинг |show=all wитх run_tests аллоwс цоммент линес то бе дисплаyед ин тхе оутпут табле—нот алл линес аре схоwн, онлy тхосе тхат старт wитх тхрее дасхес. Фор еxампле, тхе тестцасес маy инцлуде тхе фоллоwинг.

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

Тхе табле продуцед бy run_tests wоулд схоw "Тхе фоллоwинг тестс цхецк тхе wидгет оптион." ас а цоммент лине, бут онлy иф |show=all ис усед. Цомментс хаве а дистинцтиве бацкгроунд цолор, бут алсо схоw "Цмнт" ин тхе статус цолумн со тхеy цан бе фоунд бy сеарцхинг.

Цомпаринг а модуле wитх итс сандбоx

Wхен виеwинг а модуле, тхе доцументатион паге ис дисплаyед; иф тхе модуле хас а сандбоx, тхе доцументатион инцлудес "Едиторс цан еxперимент ин тхис модуле'с сандбоx" wитх а линк то дифф тхе модуле анд итс сандбоx.

Тхе тестер модуле провидес а compare фунцтион wхицх цан цхецк а сериес оф модулес, анд цомпаре еацх wитх итс сандбоx. А табле ис дисплаyед схоwинг wхетхер тхе цонтент ис дифферент, wитх а дифф линк.

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

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

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

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

Ас а цонвениенце, цертаин кеywордс аре дефинед. Фор еxампле, тхе фоллоwинг усес тхе "цонверт" кеywорд.

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

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