Ответ 1
Откроем раздел "Примечания" на странице "Начало работы" здесь:
Примечания:
- Не ставьте тесты в src/test/java, которые вы хотите запустить под Android Maven Plugin. Если вы разместите свои тесты там, Maven запускает их как обычные тесты JUnit в JVM, а файлы JAR доступны в пути к классам, который включает android.jar. Поскольку android.jar содержит только пустые методы, которые генерируют исключения, вы получаете исключения из формы java.lang.RuntimeException: Stub!. Вместо этого тесты должны проходить в src/main/java, где они не будут запускаться Maven в качестве тестов во время компиляции, но будут включены в apk и развернуты и запущены на устройстве (где у android.jar есть реализации методов вместо окурков).
- Если у вас есть тесты JUnit, которые не вызывают никаких API Android (прямо или транзитивно), поместите их в src/test/java, поэтому JUnit запускает их локально и быстрее, чем при запуске на устройстве.
- Убедитесь, что цель Android Maven установлена на jar-no-fork вместо test-jar-no-fork. Сделайте это даже для проектов, содержащих только тесты.
UPDATE:
Наиболее подходящим подпрограммой "test" IMO является src/test/java, как указано во втором пункте, если вы тестируете JUnit, это просто POJO-тест, который не связан с вызовом Android API, все будет в порядке.
Я использую src/test/java для всех Robolectric junit test с инструментальным тестом в отдельном тестовом проекте Android, все из которого управляются maven, все работает отлично для меня.
Ознакомьтесь с проектом Sample MorseFlash здесь, который включает пример src/test/java.