Я успешно настроил образ docker с JDK 9 и инструментами командной строки Android для linux. При запуске моего набора тестов (gradlew testDebug
) с использованием Robolectri c тесты не пройдены (я попробовал как старую версию, которая работала (4.2.1), так и более новую (4.3.1).
В начале журнала сборки есть несколько предупреждений:
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.robolectric.util.ReflectionHelpers (file:/builds/my-project/.gradle/caches/transforms-2/files-2.1/238170c6932e17f998749d5c97f6dcf4/jetified-shadowapi-4.2.1.jar) to field java.lang.reflect.Field.modifiers
WARNING: Please consider reporting this to the maintainers of org.robolectric.util.ReflectionHelpers
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Я включил все виды ведения журнала (также добавлено --stacktrace
для задачи gradle):
testOptions {
unitTests.includeAndroidResources = true
unitTests.returnDefaultValues = true
unitTests.all {
// https://stackoverflow.com/a/59772747/1859486
systemProperty 'robolectric.dependency.repo.url', 'https://my-repo-that-has-everything.com/'
systemProperty 'robolectric.logging.enabled', true
}
}
Even Итак, все, что я получаю, это:
com.mycompany.FooTest > foo FAILED
org.apache.tools.ant.BuildException at DependenciesTask.java:268
Caused by: org.apache.maven.artifact.resolver.MultipleArtifactsNotFoundException at DefaultArtifactResolver.java:360
Это работает локально ... (Windows 10)
Есть идеи, что может быть не так и что я могу сделать?
Для справки, вот мой конфиг зависимости Gradle (пробовал 4.2.1 и 4.3.1 с одинаковым результатом):
testImplementation('org.robolectric:robolectric:4.2.1') {
// https://github.com/robolectric/robolectric/issues/5245
exclude group: 'com.google.auto.service', module: 'auto-service'
}
Обновление 1: При запуске одного из неудачных тестов в Android Studio я вижу это (примечание: это Robolectri c 4.2.1, 4.3.1 имеет немного другую зависимость, но с тем же результатом ):
Downloading: org/robolectric/android-all/Q-robolectric-5415296/android-all-Q-robolectric-5415296.pom from repository sonatype at https://oss.sonatype.org/content/groups/public/
Error transferring file: java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: Default, provider: SunJSSE, class: sun.security.ssl.SSLContextImpl$DefaultSSLContext)
[WARNING] Unable to get resource 'org.robolectric:android-all:pom:Q-robolectric-5415296' from repository sonatype (https://oss.sonatype.org/content/groups/public/): Error transferring file: java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: Default, provider: SunJSSE, class: sun.security.ssl.SSLContextImpl$DefaultSSLContext)
Downloading: org/robolectric/android-all/Q-robolectric-5415296/android-all-Q-robolectric-5415296.pom from repository central at http://repo1.maven.org/maven2
Обновление 2: Я нашел обходной путь, позволяющий обойти эту проблему до , а не установить testOptions.unitTest.includeAndroidResources = true