Использование тестового фильтра Android (@SmallTest, @MediumTest, @LargeTest) для локальных юнит-тестов - PullRequest
0 голосов
/ 25 октября 2018

Я пытаюсь использовать фильтры поддержки Android @SmallTest, @MediumTest, @LargeTest, ... для локальных юнит-тестов.К сожалению, я не знаю, как их фильтровать при вызове модульного теста через Gradle.

Я нашел только примеры вызовов для инструментальных тестов.

У вас есть предложение?

Заранее спасибо

- РЕДАКТИРОВАТЬ - я планирую ввести больше аннотаций, таких как "externalTests" или "сравнительный анализ", которые я могу использовать вне своей обычной области тестирования (например, ночью или что-то в этом роде).Другая идея заключается в фильтрации тестовых каталогов в конфигурации Gradle.Но я думаю, что аннотация будет намного лучше ...

1 Ответ

0 голосов
/ 12 ноября 2018

Решение, которое я нашел, это JUnit Categories .Через категории вы можете пометить ваши тесты с определенным интерфейсом и отфильтровать их в файле Gradle.Я создал интерфейс

package com.mypackage.testing.category;

public interface Benchmark {
    // this is just a marker interface
}

В тестах его можно использовать следующим образом

public class CategoryTest {

    @Test
    public void unitTest() {
        System.out.println("I am a unit test");
    }

    @Test
    @Category(Benchmark.class)
    public void benchmarkTest() {
        System.out.println("I am a benchmark test");
    }
}

В файле Gradle можно фильтровать различные категории, например, с параметром Gradle benchmark

 android {
    testOptions {
        unitTests.all {
            useJUnit()
            if (project.hasProperty("benchmark").booleanValue()) {
                options {
                    includeCategories 'com.mypackage.testing.category.Benchmark'
                }
            } else {
                options {
                    excludeCategories 'com.mypackage.testing.category.Benchmark'
                }
            }
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...