ニュース

プラグインのためのユニットテストを書く方法 – Piwikのプラットフォームの紹介

2014年12月01日 トピックス ニュース

それではブログシリーズの新しい記事、Piwik プラットフォームの機能を紹介します(以前の記事はユーザー権限を確認する方法)。今回は Piwik でユニットテストを記述する方法を学びます。このチュートリアルは、PHP、PHPUnit、Piwik プラットフォームの基本的な知識を持っている必要があります。

いつ行うテストがユニットテストでしょう?

これについての多くの種々の意見があり、しばしば、決めることが困難です。Piwikでは、ただ一つのメソッドもしくはクラスがテストされる場合か、あるいはそのテストがファイルシステムやウェブ、設定、データベース、その他のプラグインに依存しない場合にユニットテストとみなしています。

テスト速度が遅い場合、単体テストではない指標をすることができます。「遅い」はもちろん少し曖昧です。今後のブログ記事のいずれかでテスト、統合テストなどの他のタイプを記述する方法を説明します。

はじめに

この記事で既に Piwik 2.9.0 インストールまたは後で gitを介して開発環境を設定しているプラグインを作成したと仮定します。まだの場合は、Piwik デベロッパーゾーンへアクセスし、Piwik のセットアップチュートリアルプラグイン開発ガイドを参照してください。

単体テストを作成してみましょう

まず Piwik コンソールを使用して新しい単体テストを作成します。

./console generate:test --testtype unit

コマンドで、作成されたテストに属するべきプラグインの名前を入力するように求められます。プラグイン名“Insights”が使用されます。次に、テストの名前が求められます。ここで通常テストするクラスの名前を入力します。この例では「Widgets」を使用します。現在、既に容易に始められるように例を含むファイル plugins/Insights/tests/Unit/WidgetsTest.php があるはずです:

/**
 * @group Insights
 * @group WidgetsTest
 * @group Plugins
 */
class WidgetsTest extends \PHPUnit_Framework_TestCase
{

    public function testSimpleAddition()
    {
        $this->assertEquals(2, 1+1);
    }

}

我々は単体テストを作成する方法カバーしていません。これは完全にあなた次第です。単体テストの記述ではありませんが、経験がある場合は、トピック、本の記事を読む、ビデオなど他の媒体で学ぶことお勧めします。

テストの実行

テストするために、テストスイート、特定のファイルまたはテストのグループを作成できるコマンド tests:run を使用するつもりです。

作成されたテストは、次のように実行されますが動作するかどうかを確認します。

./console tests:run WidgetsTest

これにより、グループWidgetsTestを持つすべてのテストを実行します。他のテストは、同じグループを使用できるように、テスト ファイルへのパスを代わりに渡すことができます:

./console tests:run plugins/Insights/tests/Unit/Widgets.php

プラグイン内のすべてのテストを実行する場合は、プラグインの名前を引数として渡します:

./console tests:run insights

もちろん複数の引数も定義できます

./console tests:run insights WidgetsTest

これは WidgetsTest グループの持つ insights プラグイン内のすべてのテストを実行します。あなたのプラグイン内のユニットテストを実行する場合、次を行うことができます。

./console tests:run insights unit

高度な機能

ユニットテストを作成するのは難しいですか?私たちも、ファイルを作成したことはありません!もし作成したい場合には多くを達成することができます。他のタイプのテストを生成し、AmazonのAWS上で実行することも可能です!
残念なことに全てがドキュメント化されている訳ではないので、次の2つのコマンドを実行することでもっと多くの機能を確認してみることをお勧めします。./console list tests./console help tests:run

API または Piwik デベロッパーゾーンの手順に関してのフィードバックもお気軽にお寄せ下さい


thomas_s-150x150Thomas Steur

Thomasはドイツの名門ソフトウェア会社で働くソフトウェア·エンジニアです。彼は何千人ものユーザーが数十週に渡って使用している当社のPiwik モバイル アプリを作成し、現在の開発リーダーでもあります。Thomasは常により良いPiwikのモバイルを作るために新しいアイデアを試みています。もしアプリ使用しているのであれば、沢山の提案やアイデアのフィードバックをお願いします。