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

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

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

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

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

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

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

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

UPD2 Нет, снова просто истекло время ожидания: Ошибка при передаче файла: время ожидания истекло


person Eugen Martynov    schedule 17.12.2013    source источник


Ответы (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>

Для gradle смотрите здесь https://docs.gradle.org/current/userguide/build_environment.html

person Gaskoin    schedule 25.03.2014
comment
Привет, спасибо за ответ. Я протестирую и дам вам знать - person Eugen Martynov; 25.03.2014
comment
Не смог, так как сменил работу :) - person Eugen Martynov; 27.02.2015

Чтобы добавить еще один поздний ответ на старый вопрос :) Начиная с 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/")
    }
}

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

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

person G. Lombard    schedule 17.07.2015
comment
Прохладный! Спасибо, что поделился. Это интересное решение, но я бы предпочел settings.xml - person Eugen Martynov; 17.07.2015

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

person Nonos    schedule 02.07.2015
comment
Это не сработало, потому что мой ответ был о робототехнике с использованием raw jar или maven. Я обновил свой ответ - person Gaskoin; 04.07.2015