Тест интеграции Android использует старый APK

Я создал красивый проект для Android, используя Maven и Android-релиз Archetype. Теперь у меня есть простая проблема: мои интеграционные тесты не используют самую новую версию тестируемой библиотеки.

При запуске Eclipse Maven и M2E, похоже, все используют устаревшую версию (по крайней мере, приложение, открытое на моем устройстве в течение доли секунды, выглядит так). Сначала я подумал, что это может быть глупое кэширование Eclipse, но затем Maven сможет использовать правильную версию. Я удалил папки bin и target и даже записи в репозиториях Maven, но сборка всегда вытаскивает эту старую версию из воздуха.

И только сейчас я обнаружил, что не только тестируемая библиотека устарела, но есть тест, выполненный через Maven и M2E, который был удален некоторое время назад.

Я знаю, что вопрос довольно расплывчатый, но я не уверен, где искать источник проблемы. Кто-нибудь может дать мне указатель на то, что происходит?


Очевидно, это как минимум две отдельные проблемы. Я исправил часть Eclipse, добавив библиотеку в качестве зависимости в свойствах Android проекта. Поскольку это проблема с плагином android-maven-plugin, я опубликую соответствующие части pom.xml проекта интеграционного тестирования в надежде, что у кого-то, начинающего с того же архетипа, возникла та же проблема, и он знает, как ее исправить:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>org.acme.project.android.it</artifactId>
<packaging>apk</packaging>

<dependencies>
    <dependency>
        <groupId>org.acme.project</groupId>
        <artifactId>org.acme.project.android</artifactId>
        <version>${project.version}</version> 
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>com.google.android</groupId>
        <artifactId>android-test</artifactId>
        <version>4.1.1.4</version>
        <scope>provided</scope>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>com.jayway.maven.plugins.android.generation2</groupId>
            <artifactId>android-maven-plugin</artifactId>
            <configuration>
                <sdk>
                    <platform>16</platform>
                </sdk>
            </configuration>
            <extensions>true</extensions>
        </plugin>
    </plugins>
</build>
</project>

2 ответа

Решение

Правильный ответ: то, что я хотел сделать (интеграционное тестирование библиотеки Android), просто невозможно. Сейчас я тестирую приложение, и оно работает.

Вы должны убедиться, что версия приложения, которое вы хотите протестировать, верна. В вашем случае вы используете версию 1.0.0 ... в то время как в действительности последняя версия находится в стадии разработки, вероятно, что-то вроде 1.1.0-SNAPSHOT.

Кроме того, вы выше, безусловно, недействительным. Посмотрите на примеры проектов, которые мы предоставляем как часть проекта Android Maven Plugin.

Другие вопросы по тегам