У меня была та же проблема: локально работала Robolectric, но однажды она подтолкнула Дженкинса к задаче gradle для выполнения тестов.
Вы можете выполнить задачу gradle для запуска тестов с флагами -i -d
, чтобы увидеть больше отладочной информации.
./gradlew -i -d test
Для меня это показало, что Дженкинс не смог загрузить зависимости Robolectric:
13:58:43 13:58:42.904 [DEBUG] [TestEventLogger] com.my.package.Test > my_test_case STANDARD_ERROR
13:58:43 13:58:42.904 [DEBUG] [TestEventLogger] Downloading: org/robolectric/android-all/9-robolectric-4913185-2/android-all-9-robolectric-4913185-2.jar from repository sonatype at https://oss.sonatype.org/content/groups/public/
Я мог бы решить эту проблему, сказав gradle использовать наш корпоративный прокси при работе на Jenkins. Одним из способов достижения этого было бы добавить следующее в ваш gradle.properties:
systemProp.http.proxyHost=http://proxy.host
systemProp.http.proxyPort=3128
systemProp.https.proxyHost=http://proxy.host
systemProp.https.proxyPort=3128
---- РЕДАКТИРОВАТЬ ----
На самом деле я нашел более чистое решение для своего случая использования, а затем настроил прокси: Robolectric предлагает способ настройки репозитория, который он использует во время выполнения (см. http://robolectric.org/configuring/). Таким образом, я смог сказать ему использовать наш корпоративный хранилище.
android {
testOptions {
unitTests.all {
systemProperty 'robolectric.dependency.repo.url', 'https://local-mirror/repo'
systemProperty 'robolectric.dependency.repo.id', 'local'
}
}
}