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


99

私はAndroidを使い始めたばかりで、これらのアノテーションを使用したコード例を見てきました。例えば:

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

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

回答:


9

ダビダンの回答と主にコメント内のOPの質問への追加として:

上記のコードのコンテキストでは、それは実際にはないDO休暇を除いて他の開発者のためのノートを何?それは何かを強制しますか?この注釈を利用するツールはありますか?Android開発の目的は何ですか?

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

AndroidJUnitRunnerのドキュメントから:

SmallTestMediumTest、または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'
        }
    }

グラドル経由:

-Pandroid.testInstrumentationRunnerArguments.size=small

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


わかりましたadb shell am instrument -w -e size small com.android.foo/android.support.test.runner.AndroidJUnitRunner。つまり、@ SmallTestテストスイートのみを実行できます。感謝
kosiara-Bartosz Kosarzycki 2018

gradleコマンドでアノテーションをどのように指定しますか?例えば、のようなもの:./gradlew connectedDebugAndroidTest -size MediumTest
MR-IDE

@ Mr-IDE、答えはわかりましたか?
ジョン

138

このブログ投稿はそれを最もよく説明しています。基本的には、次のとおりです。

テストチャート

  1. 小:このテストは、ファイルシステムやネットワークと相互作用しません。
  2. 中:テストを実行しているボックス上のファイルシステムにアクセスします。
  3. 大:外部ファイルシステム、ネットワークなどにアクセスします。

パーAndroidデベロッパーブログ、小さなテストは<100msの、メディアのテスト<2S、および大規模なテスト<120Sを取る必要があります。

実行するテストを指定する方法については、このページ(「@SmallTest」を検索)を参照してください


13
わかります(先月の記事を読んだことを覚えています)。しかし、上記のコードのコンテキストでは、他の開発者にメモを残す以外に実際に何かしますか?それは何かを強制しますか?この注釈を利用するツールはありますか?Android開発の目的は何ですか?
Eric Palakovich Carr、2011

3
@Eric Android TestRunnerでは、実行するテストのサイズを指定できます。
シェリルサイモン

7
この件については、Googleの新しいブログがあります:plus.google.com/+AndroidDevelopers/posts/TPy1EeSaSg8
k29

1
@SmallTestは非推奨
Neon Warge

1
@NeonWarge use import android.support.test.filters。[Small] Test;
Alexander Sidikov Pfeif、2016

1

また、独自のカテゴリを定義して、POJO単体テストに@Category(MediumTest.class)or @Category(LargeTest.class)などの注釈を付けることもできます。例については、test-categoriesリポジトリを参照してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.