Яка мета анотацій @SmallTest, @MediumTest та @LargeTest в Android?


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

Як доповнення до відповіді Давідана і головним чином до запитання ОП у коментарі:

У контексті наведеного вище коду, це на самому справі DO нічого , крім залишити записку для інших розробників? Чи це щось застосовує? Чи існують інструменти, які використовують цю анотацію? Яка це мета у розробці Android?

Ви можете запустити групу тестів, анотованих конкретною анотацією.

З документації AndroidJUnitRunner :

Запуск певного розміру тесту, тобто анотований за допомогою SmallTest або MediumTest або LargeTest :

adb shell am instrument -w -e розмір [малий | середній | великий] com.android.foo/android.support.test.runner.AndroidJUnitRunner

Ви також можете налаштувати ці параметри за допомогою gradle:


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

Через gradle:

-Pandroid.testInstrumentationRunnerArguments.size=small

Щоб дізнатися більше, перегляньте допис у блозі Дуга Стівенсона , а також цю публікацію .


Добре, отже, коротше, я можу запускати лише тестовий пакет @SmallTest за допомогою adb shell am instrument -w -e size small com.android.foo/android.support.test.runner.AndroidJUnitRunner; подяка
kosiara - Bartosz Kosarzycki

Як ми вказуємо анотацію в команді gradle? Наприклад, щось на зразок:./gradlew connectedDebugAndroidTest -size MediumTest
Mr-IDE

@ Mr-IDE, чи отримали ви відповідь?
Іван

138

Це повідомлення в блозі це найкраще пояснює. В основному це наступне:

діаграма тестування

  1. Невеликий: цей тест не взаємодіє з жодною файловою системою чи мережею.
  2. Середній: отримує доступ до файлових систем на коробці, в якій запущені тести.
  3. Великий: доступ до зовнішніх файлових систем, мереж тощо.

Згідно з блогом розробників Android , невеликий тест повинен тривати <100 мс, середній - <2 с, великий - <120 с.

Перегляньте цю сторінку (шукайте "@SmallTest") про те, як вказати, які тести запускатимуться.


13
Я бачу (і пам’ятаю, що читав цю статтю минулого місяця). Але в контексті наведеного вище коду, чи насправді це робить щось, крім того, щоб залишити примітку для інших розробників? Чи це щось застосовує? Чи існують інструменти, які використовують цю анотацію? Яка це мета у розробці Android?
Ерік Палакович Карр,

3
@Eric Android TestRunner дозволяє вказати, який обсяг тестів запускати.
Шеріл Саймон

7
Є новий блог від Google з цього приводу: plus.google.com/+AndroidDevelopers/posts/TPy1EeSaSg8
k29,

1
@SmallTest застарілий
Neon Warge

1
@NeonWarge використовуйте import android.support.test.filters. [Маленький] Тест;
Олександр Сідіков Пфайф

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.