2017-01-25 1 views
5

У нас есть 2 продукта вкусов в нашем приложении, и один вкус имеет класс (FlavorSpecificClass), который другой нет. У нас есть тест junit для FlavorSpecificClass в папке src/test, который не будет компилироваться, когда мы находимся на нашем основном варианте, потому что класс не существует в этом варианте.Как тестировать устройство (junit) Android Flavor/Variant - класс не существует

Я не могу найти способ иметь отдельные модульные тесты для каждого варианта, и код не будет компилироваться в нашем основном варианте, если я не буду комментировать ссылки на FlavorSpecificClass. Как я могу обойти это?

ответ

3

Предполагая, что вы используете град.

Для этого вам понадобится другой каталог, который находится в том же месте, что и ваш «тестовый» каталог. Назовите каталог как «test [BuildVariant]» и проверите тесты для этого варианта сборки внутри этого каталога.

Предположим, вы построили вариант отладки, ваша структура каталогов будет выглядеть примерно так, если вы хотите проверить классы, которые только в отладочных варианте

-debug/java/... 
-main/java/... 
-test/java/[your tests] 
-testDebug/java/[your tests for build variant debug] 
+0

Да с помощью Gradle. Я попробовал это, и он работает только для запуска тестов в папке testDebug, когда выбран вариант отладки, но проблема с основным вариантом, который не компилируется из-за класса, который существует только в отладке. Класс упоминается только в тестах в папке testDebug, однако основной вариант все равно не будет компилироваться и запускаться. – DDM

+0

Тогда это означает, что ваш основной вариант хочет, чтобы этот класс был там. Возможно, вам придется добавить этот класс во все варианты. Другие варианты могут иметь методы no-op. –

+1

Мы поняли это. Когда я создал папку testDebug, я перешел к созданию папки java, выбрав New -> Folder -> Java Folder. Это автоматически добавило 'src/testDebug/java' в мой основной источник в build.gradle. Что было сделано, так это просто создать папку java с помощью New -> Directory, а затем файл build.gradle никогда не будет изменен. – DDM

Смежные вопросы