(Translated by https://www.hiragana.jp/)
Wikipedia:テンプレートのサンドボックスとテストケース - Wikipedia コンテンツにスキップ

Wikipedia:テンプレートのサンドボックスとテストケース

テンプレートメディアウィキのとても強力きょうりょく機能きのうですが、経験けいけんんだ利用りようしゃであってさえも、簡単かんたん失敗しっぱいをしてしまうことがあります。したがって、バグをふせぐために、複雑ふくざつなテンプレートにはそのサブページとして、試作しさくおこなサンドボックスとその試作しさくひんしをテストするテストケース必要ひつようです。

この方法ほうほういているテンプレート

[編集へんしゅう]

テンプレートはおおくのページにされるものであり、テンプレートの編集へんしゅう失敗しっぱいをするとその影響えいきょうおおきくなります。そのため、おおきな変更へんこうをするまえにサンドボックスでテストをするのがよいでしょう。膨大ぼうだいかずのページにされているテンプレートは、編集へんしゅうするまえかならずテストしてください。

とく条件じょうけんぶん使つかったテンプレートは、おおくの引数ひきすうをとったり、#switch演算えんざんおおくの分岐ぶんきによって、非常ひじょう多彩たさい出力しゅつりょく生成せいせいすることができます。このようなテンプレートは、プレビューやサンドボックスだけでは問題もんだいがないかたしかめることが困難こんなんであり、テストケースでいろいろなパターンの出力しゅつりょくためすことがすすめられます。さらに、このようなテストケースは表示ひょうじれい一覧いちらんとしてもやくちます。

ぎゃくに、関連かんれん項目こうもくへのリンク一覧いちらんであるナビゲーションテンプレートのように、パラメータをらず、どのさきでもおな表示ひょうじがされるものはテストケースを利用りようする利点りてんすくないといえるでしょう。

また、テンプレートがされたページの構成こうせいによっては表示ひょうじ問題もんだいこることがあります。それをふせぐために、サンドボックスに作成さくせいしたテンプレートを様々さまざま環境かんきょう閲覧えつらんしてたしかめたり、テストケースでのテンプレートやひょう画像がぞうなどと一緒いっしょ表示ひょうじした結果けっかをテストすることもできます。

サンドボックスとテストケースのサブページのつくかた

[編集へんしゅう]

サブページをつく

[編集へんしゅう]

テンプレートの名前なまえTemplate:Xだとすると、サンドボックスの名前なまえTemplate:X/sandbox、テストケースの名前なまえTemplate:X/testcasesになります。

テンプレートの解説かいせつに、{{Documentation}}が使つかわれていれば、それぞれのサブページへのあかリンクがあるので、そこからサブページを作成さくせいすることができます。すでにこの名前なまえのサブページがあれば、{{Documentation}}をもちいてそれらにリンクすることができます。{{Documentation}}が使つかわれていない場合ばあいは、あらためて使用しようするか独自どくじにサブページへのリンクをつくってください。

サンドボックスにコードを複製ふくせいする

[編集へんしゅう]

サンドボックスにコードを複製ふくせいします。そのさい履歴りれき継承けいしょう必要ひつようせいなどGFDLのしょ条件じょうけんたす必要ひつようがあります。つまり、

  1. Template:X/sandbox末尾まつびに、Template:Xから <noinclude> かこまれていない部分ぶぶん全体ぜんたい複製ふくせいします。要約ようやくらんには「[[Template:X]]のxxxxねんxxつきxx xx:xx (UTC) から一部いちぶ複製ふくせい」と記入きにゅう一旦いったん投稿とうこうします。
  2. つぎのコードを最初さいしょくだり先頭せんとう挿入そうにゅうします。<noinclude>と</noinclude>のあいだには空行くうぎょうがあってもかまいませんが、</noinclude>ののちには空行くうぎょう空白くうはくれないでください。
    <noinclude>{{Template sandbox notice}}</noinclude><!-- ここに複製ふくせいしたコード -->
    必要ひつようがあればその編集へんしゅうおこなったうえ投稿とうこうします[1]

1.と2.とで2かいけて投稿とうこうするのは複製ふくせい作業さぎょう編集へんしゅう作業さぎょうとを明確めいかく区別くべつするためです。手順てじゅん詳細しょうさいについては、Wikipedia:ページの分割ぶんかつ統合とうごう#一部いちぶ転記てんき手順てじゅん参考さんこうにしてください。

テストケースをつく

[編集へんしゅう]

Template:X/testcasesにはいくつかのしのれい ({{X | .... }}) を作成さくせいします。テンプレートの解説かいせつぶんにある場合ばあいはそれをコピーしてください。そして、それぞれのれいをさらにふたつに複製ふくせいします。さらにそれぞれのれい片方かたがたについて、XX/sandboxえてください。これで、もとのテンプレートによる表示ひょうじあたらしいテンプレートによる表示ひょうじひとひと比較ひかくできるようになります。最後さいごに、{{Template test cases notice}}をテストケースのページの先頭せんとうくわえてください。周囲しゅうい空行くうぎょうれてもかまいません。

最終さいしゅうてきに、Template:X/testcasesは、つぎのようなコードになるはずです:

{{Template test cases notice}}

{{X | .... }}
{{X/sandbox | .... }}

{{Test case}} を利用りようして省力しょうりょくすることもできます。

サンドボックスとテストケースの使つかかた

[編集へんしゅう]

まず、サンドボックスを編集へんしゅうしてあたらしいテンプレートにします。ノートページやローカルのエディタなどであたらしいテンプレートを用意よういしてある場合ばあいや、既存きそんのテンプレートとまったちがうものをつく場合ばあいでなければ、サンドボックスをつくるときとおなじように現在げんざいのテンプレートを複製ふくせいてから、それを編集へんしゅうしましょう。

つぎにテストケースを表示ひょうじし、あたらしいテンプレートが問題もんだいなくだしされるか確認かくにんします。あたらしい出力しゅつりょくもと出力しゅつりょく比較ひかくするには、テストケースにいち表示ひょうじされるのをくらべる方法ほうほうだけでなく、タブ・ブラウザを使つかって、サンドボックスを変更へんこうするまえにテストケースのサブページを表示ひょうじし、サンドボックスの変更へんこうにもうひとつのタブで表示ひょうじすることで、変更へんこう前後ぜんこうのテストケースをくらべる方法ほうほうもあります。

サンドボックスのテンプレートがすべてのテストケースで問題もんだいないようでしたら、本物ほんもののテンプレートをサンドボックスのものにえます。このさいにも履歴りれき継承けいしょう必要ひつようせいなどGFDLのしょ条件じょうけんたす必要ひつようがあります。#サンドボックスにコードを複製ふくせいするきわ同様どうよう手順てじゅん作業さぎょうしてください。

サンドボックス対応たいおうのコードのかた

[編集へんしゅう]

サンドボックスとテンプレート本体ほんたいのページはコードの複製ふくせい頻繁ひんぱんかえすことになります。そのため、毎回まいかい、サンドボックスに複製ふくせいするときは{{Template sandbox notice}}をくわえ、テンプレート本体ほんたい複製ふくせいするときは{{Template sandbox notice}}を除去じょきょするというのは、すこしばかり手間てまだとかんじるかもしれません

このてんは、あらかじめ、テンプレート本体ほんたいのページをサンドボックス対応たいおうにしておけば、面倒めんどう作業さぎょう発生はっせいしません。

{{Template sandbox notice}}はけられたサブページめいが「sandbox」でないかぎり、なに引数ひきすう指定していしていなければ、なに出力しゅつりょくしませんから、つぎのように本体ほんたいのテンプレート本体ほんたいのページにいておけば、テンプレート本体ほんたいのコードとsandboxのコード全体ぜんたい相互そうご複製ふくせいしても、サンドボックスでだけメッセージが表示ひょうじされます:

<noinclude>
{{ Template sandbox notice }}
</noinclude><!-- テンプレートの本体ほんたいコード -->

さらに、(1)テンプレート本体ほんたいのページではある告知こくちし、サンドボックスではしたくない場合ばあい、(2)ぎゃくにサンドボックスではある告知こくちし、テンプレート本体ほんたいのページではしたくない場合ばあい、あるいは(3)テンプレート本体ほんたいのページとサンドボックスで告知こくち使つかけたい場合ばあいつぎのようなコードを使つかうことができます[2][3]

<noinclude>
{{
  #ifeq: {{SUBPAGENAME}} | sandbox
  | <!-- サンドボックスで告知こくち -->{{Template sandbox notice}}
  | <!-- サンドボックス以外いがい告知こくち:{{保護ほご}}、{{複雑ふくざつなテンプレート}}など -->
}}
</noinclude><!-- テンプレートの本体ほんたいコード -->

もっとも、同様どうようのテンプレート本体ほんたいのページとサンドボックスでの使つかけは、{{Template sandbox notice}}の引数ひきすう使つかって、つぎのようなコードでも実現じつげんできます:

<noinclude>
{{
  Template sandbox notice
  | notice-for-sandbox = <!-- サンドボックスで告知こくち -->
  | notice-not-sandbox = <!-- サンドボックス以外いがい告知こくち:{{保護ほご}}、{{複雑ふくざつなテンプレート}}など -->
}}
</noinclude><!-- テンプレートの本体ほんたいコード -->

また、テンプレート本体ほんたい適用てきようされる言語げんごあいだリンクやカテゴリ(れいCategory:ウィキペディアのテンプレート)を、テンプレート説明せつめい文書ぶんしょのサブページ(Template:X/doc)<includeonly></includeonly>構文こうぶんいている場合ばあい[3]、サンドボックスにそのコードをそのまま複製ふくせいすると、サンドボックスのページにもおな言語げんごあいだリンクやカテゴリが適用てきようされてしまいます。しかし、つぎのようなコードをいてはいけません

<noinclude>
{{
  #ifeq: {{SUBPAGENAME}} | sandbox
  | 
  | {{Documentation}}
}}
</noinclude>

このように記述きじゅつした場合ばあい、{{Documentation}}でまれた文書ぶんしょふし編集へんしゅうリンクが機能きのうしなくなります[4]。かわりに、テンプレート説明せつめい文書ぶんしょなかつぎのような条件じょうけんぶん使つかうことで対処たいしょできるので、検討けんとうしてみてください:

<includeonly>
{{
  #ifeq: {{SUBPAGENAME}} | sandbox
  | 
  |
<!-- ここに、テンプレート本体ほんたい適用てきようする言語げんごあいだリンクやカテゴリをく。-->
}}
</includeonly>

テストケース対応たいおうのコードのかた

[編集へんしゅう]

前節ぜんせつではテンプレート自体じたい適用てきようするカテゴリについてべましたが、テンプレートのなかには、そのテンプレートをけたページに一定いっていのカテゴリ(れいCategory:スタブ)を適用てきようするものがあります。そのようなテンプレートをテストケースに使用しようすると、テストケースもそのカテゴリにふくまれてしまいます。

これをけるためには、テンプレートをけたページに適用てきようするカテゴリを、テンプレートのなかつぎのようなコードで記述きじゅつすることができます:

<includeonly>{{
  #ifeq: {{NAMESPACE}} | {{ns:0}}
  | <!-- テンプレートをけたページに適用てきようするカテゴリをここにく -->
}}</includeonly>

このコードは、標準ひょうじゅん名前なまえ空間くうかんのページ(つまり普通ふつう記事きじ)にけられたときのみ、そのページをカテゴリにふくませます。また、このコードを使つかえば、ノートページでテンプレートについて説明せつめいする場合ばあいなど、そのテンプレートを標準ひょうじゅん名前なまえ空間くうかん以外いがい場所ばしょ使つかうときに、そのページをカテゴリにふくませないという効果こうかもあります。ノートページで使用しようするためのテンプレートなどの場合ばあいは、{{ns:0}}の部分ぶぶんを、適当てきとうマジックワードえてください。

ぎゃくに、どの名前なまえ空間くうかんでも使用しようしたい、つまりけたページがどの名前なまえ空間くうかんであってもカテゴリにふくませたいとき、それでもなおピンポイントでテストケースでだけはカテゴリの適用てきようけたい場合ばあいは、つぎのようなコードを使用しようできます:

<includeonly>{{
  #ifeq: {{SUBPAGENAME}} | testcase
  |
  | <!-- テンプレートをけたページに適用てきようするカテゴリをここにく -->
}}</includeonly>
<includeonly>{{
  #ifeq: {{FULLPAGENAME}} | {{ns:10}}:X/testcase
  |
  | <!-- テンプレートをけたページに適用てきようするカテゴリをここにく -->
}}</includeonly>

もちろん、方法ほうほうもありえますし、引数ひきすうやより複雑ふくざつ条件じょうけんぶん使つかってより高度こうど動作どうさおこなわせることもできます。

実例じつれい

[編集へんしゅう]

脚注きゃくちゅう

[編集へんしゅう]
  1. ^ テンプレートのはじめにひょうがあると、それがただしく表示ひょうじされないことがあります。その場合ばあいは</noinclude>のまえ改行かいぎょう入力にゅうりょくしてください。
  2. ^ テンプレートの説明せつめいぶん(Template:X/doc)がある場合ばあいには、テンプレート本体ほんたい告知こくちは<includeonly></includeonly>構文こうぶんもちいて説明せつめいぶんのサブページにいたほう便利べんりです。
  3. ^ a b テンプレート本体ほんたい適用てきようされるものを<includeonly></includeonly>構文こうぶんもちいて説明せつめいぶんのサブページに方法ほうほうには、テンプレートの編集へんしゅう保護ほごされている場合ばあいに、テンプレート本体ほんたい適用てきようされる言語げんごあいだリンクやカテゴリを変更へんこうできるようにするなどの効果こうかがあります。
  4. ^ した文書ぶんしょ条件じょうけん文中ぶんちゅうにあることが原因げんいんです。くわしくはHelp:セクション#条件じょうけん文中ぶんちゅうのセクションをごらんください。

関連かんれん項目こうもく

[編集へんしゅう]