web-dev-qa-db-ja.com

Androidの@ SmallTest、@ MediumTest、および@LargeTestアノテーションの目的は何ですか?

Androidが初めてで、これらのアノテーションを使用したサンプルコードを見ました。たとえば:

@SmallTest
public void testStuff() {
    TouchUtils.tapView(this, anEditTextView);
    sendKeys("H E L P SPACE M E PERIOD");
    assertEquals("help me.", anEditTextView.getText().toString());
}

その注釈は何を達成しますか?

91

コメントの Davidannの答え および主に OPの質問 の追加として:

上記のコードのコンテキストでは、他の開発者向けにメモを残すことを除いて、実際には[〜#〜] do [〜#〜]何かありますか?それは何を強制しますか?この注釈を利用するツールはありますか? Android開発での目的は何ですか?

特定の注釈が付けられたテストのグループを実行できます。

AndroidJUnitRunnerドキュメント から:

特定のテストサイズの実行、つまりSmallTestまたはMediumTestまたはLargeTest

adb Shell am instrument -w -e size [small | medium | large] com.Android.foo/Android.support.test.runner.AndroidJUnitRunner

Gradleを介してこれらのパラメーターをセットアップすることもできます。


    Android {
        ...
        defaultConfig {
            ...
            testInstrumentationRunnerArgument 'size', 'Large'
        }
    }

詳細については、 このブログ投稿 を参照してください。

7
azizbekian

独自の Categories を定義することで、POJOユニットテストに@Category(MediumTest.class)@Category(LargeTest.class)などで注釈を付けることもできます- test-categories を参照してください=例のレポ

1
Rhisiart