Запустите Robolectric в IDEA за прокси

У меня есть корпоративная среда со всеми вызовами http и https за прокси.

Мне удалось исправить некоторые проблемы с загрузкой из командной строки, поместив экспортную переменную среды http_proxy в файл.profile.

Но с Robolectric 2.2, который загружает исходники или классы Android перед первым запуском, я потерпел неудачу. У меня пока нет настроек CI, поэтому я просто пытаюсь запустить тесты из идеи.

Кто-нибудь знает, как это исправить?

Я попытался предоставить прокси в настройках IDEA, я попытался предоставить дополнительную переменную среды в конфигурации запуска. Ничего не помогает

UPD Когда я указываю прокси в настройках Mac, он выдает другую ошибку: Невозможно найти ресурс 'org.sonatype.oss:oss-parent:pom:7' в сонате репозитория ( https://oss.sonatype.org/content/groups/public/)

Похоже, что я, вероятно, использую или пропускаю неверную транзитивную зависимость для Robolectirc (я не использую maven или ivy, я только что скачал jars из maven central)

UPD2 Нет, это просто тайм-аут снова: Ошибка передачи файла: Тайм- аут операции

3 ответа

Я знаю, что это немного старый вопрос, но если вы хотите использовать прокси, вы должны поместить следующий файл в вашу домашнюю директорию /.m2:

settings.xml

<settings>
    <proxies>
        <proxy>
            <active>true</active>
            <protocol>http</protocol>
            <host>your_host_here</host>
            <port>your_port_here</port>
        </proxy>
    </proxies>
</settings>

Для получения более подробной информации смотрите здесь https://docs.gradle.org/current/userguide/build_environment.html

Чтобы добавить еще один поздний ответ на старый вопрос:) Начиная с Robolectric 2.4 были введены два свойства, чтобы помочь в сценарии, когда ваши тесты Robolectric в CI выполняются за прокси-сервером:

Вы должны указать robolectric.offline а также robolectric.dependency.dir в вашем файле build.gradle. Что-то вроде этого:

afterEvaluate {
    project.tasks.withType(Test) {
        systemProperties.put('robolectric.offline', 'true')
        systemProperties.put('robolectric.dependency.dir', "${project.rootDir}/.robolectric/")
    }
}

Затем вам нужно скачать необходимые файлы из maven или sonatype и поместить их в каталог, который вы указали...

Я написал сообщение в блоге с более подробной информацией.

На случай, если это кому-то поможет. Настройка прокси в файле settings.xml (я пробовал оба возможных пути для этого файла) не работает для меня. Я закончил тем, что передал это в качестве аргумента:gradle cleanTest test -Dhttps.proxyHost=<proxy-host> -Dhttps.proxyPort=<proxy-port>

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