WordPressプラグインを、VCCWを使って初めて作ってみた(2)

この記事は、WordPressプラグインを、VCCWを使って初めて作ってみた(1)の続きです。

前回は初めてのテストを実行しました。この記事ではTw-User-Linkを参考にしながらテストの書き方を学びます。

その後、公式ディレクトリに公開する準備を見ていきましょう。

 

目次

  • テストを書いてみる
    • テスト用のファイルを作成
    • テストを書く
  • ついに公開
    • 確認すべきこと
    • (3)へつづく

 

テストを書いてみる

 

テスト用のファイルを作成

テスト用ファイルを新しく作成します。テスト用のファイルにはいくつかの決まりがあります。

  • テストファイルはプラグインディレクトリの、testsディレクトリ以下におく
  • ファイル名は、test-ではじまり拡張子が.phpであること
  • テスト用の関数名はtestではじまること

 

テストファイルを作成します。下のコマンドをプラグインディレクトリ直下で実行します。

$ touch tests/test-tw-user-link.php/;

 

テストの書き方

作成したテストファイルにテストを書いていきます。Tw-user-linkのテストコードを見て、より詳しくテストの書き方を学びましょう。

test-tw-user-link.php | Github

<?php
/**
  * Class TwUserLinkTest
  *  Tw_User_Link
    class TwUserLinkTest extends WP_UnitTestCase {
  /**
   * Defalut test.
   */
function test_twitter_link() {
  $expected = 'Hello <a class="twitter-link" href="https://twitter.com/miya"></a>.';
  $content = 'Hello .';
  $result = replace_tw_user_name_to_link( $content );
  $this->assertSame( $expected, $result );
 }
}

 

上の例では、プラグインの本体側に、replace_tw_user_name_to_link()というのようなTwitterのスクリーンネームにリンクを貼る関数を用意しています。

$expected内に期待する結果を代入し、$contentに入力内容を代入して、replace_tw_user_name_to_link()の引数としています。関数実行結果を$resultに代入し、assertSameというメソッドを使って$expectedと比較しています。

 

ここでは、デフォルトの機能や、ユーザーネームに既にリンクが貼られていた場合にはエスケープするという機能をテストしています。

他にもたくさんテストが書いてあるのでgithubレポジトリをチェックして見て下さい。

test-tw-user-link.php | Github

 

 

開発の流れ

開発の流れとしては、テストを書く(tests/test-your-plugin.php)→ 本体のコードを書く(your-plugin.php)→テストをする。という流れになります。

githubにTravisCIを連携させPushする毎に自動でテストを回すやり方が非常に便利なのですが、その方法はまた別記事で。

ついに公開

はい、それではついに公開ですね。つまり公式プラグインディレクトリに登録します。

難しそうですが、VCCWが必要なものは用意してくれているので意外と簡単です。

公式のプラグインアップロードページをチェックしてみましょう

Add Your Plugin | WordPress.org

 

確認すべきこと

アップロードまでに確認すべきこととしては、

  • GPLv2またはそれ以降のライセンスで公開されること。
  • 非合法なものではないこと
  • 商標権を侵害しないこと
  • ユーザーの了解なく外部リンクを埋め込まない。

 

などがありますが、VCCWがreadme.txtのテンプレートを用意してくれているので、参考にしながら適宜書き換えて下さい。

分からなければ他の有名なプラグインなどを参考にすると良いと思います。

 

この記事のまとめ

  • 実際にテストを書いてみる。
    • テスト用のファイルを作成
    • テストを書く
  • ついに公開
    • 確認すべきこと
    • (3)へつづく

 

 

文章が長くなってしまったので、WordPressプラグインを、VCCWを使って初めて作ってみた(3)に続きます。